addSql('CREATE TABLE organization (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, name VARCHAR(120) NOT NULL, slug VARCHAR(120) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, UNIQUE INDEX UNIQ_C1EE637CD17F50A6 (uuid), UNIQUE INDEX uniq_organization_slug (slug), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE api_key (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, scopes JSON NOT NULL, last_used_at DATETIME DEFAULT NULL, expires_at DATETIME DEFAULT NULL, revoked_at DATETIME DEFAULT NULL, name VARCHAR(120) NOT NULL, key_prefix VARCHAR(24) NOT NULL, key_hash BINARY(32) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, created_by_id INT DEFAULT NULL, environment_id INT NOT NULL, UNIQUE INDEX UNIQ_C912ED9DD17F50A6 (uuid), INDEX IDX_C912ED9DB03A8386 (created_by_id), INDEX idx_api_key_environment (environment_id), UNIQUE INDEX uniq_api_key_hash (key_hash), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE audit_log (id INT AUTO_INCREMENT NOT NULL, created_at DATETIME NOT NULL, actor_label VARCHAR(180) DEFAULT NULL, entity_class VARCHAR(120) DEFAULT NULL, entity_id VARCHAR(64) DEFAULT NULL, context JSON NOT NULL, ip_address VARCHAR(45) DEFAULT NULL, user_agent VARCHAR(255) DEFAULT NULL, action VARCHAR(80) NOT NULL, actor_id INT DEFAULT NULL, organization_id INT NOT NULL, INDEX IDX_F6E1C0F510DAF24A (actor_id), INDEX IDX_F6E1C0F532C8A3DE (organization_id), INDEX idx_audit_org_date (organization_id, created_at), INDEX idx_audit_actor (actor_id, created_at), INDEX idx_audit_target (entity_class, entity_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE completion_stat (id INT AUTO_INCREMENT NOT NULL, total_keys INT DEFAULT 0 NOT NULL, untranslated INT DEFAULT 0 NOT NULL, draft INT DEFAULT 0 NOT NULL, translated INT DEFAULT 0 NOT NULL, needs_review INT DEFAULT 0 NOT NULL, reviewed INT DEFAULT 0 NOT NULL, computed_at DATETIME NOT NULL, project_id INT NOT NULL, locale_id INT NOT NULL, platform_id INT DEFAULT NULL, INDEX IDX_C818E4F5166D1F9C (project_id), INDEX IDX_C818E4F5E559DFD1 (locale_id), INDEX IDX_C818E4F5FFE6496F (platform_id), UNIQUE INDEX uniq_stat_scope (project_id, platform_id, locale_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE environment (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, auto_publish TINYINT DEFAULT 0 NOT NULL, sort_order INT DEFAULT 0 NOT NULL, name VARCHAR(60) NOT NULL, slug VARCHAR(60) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, current_release_id INT DEFAULT NULL, project_id INT NOT NULL, UNIQUE INDEX UNIQ_4626DE22D17F50A6 (uuid), INDEX IDX_4626DE226E91BB0F (current_release_id), INDEX IDX_4626DE22166D1F9C (project_id), UNIQUE INDEX uniq_environment_project_slug (project_id, slug), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE glossary_term (id INT AUTO_INCREMENT NOT NULL, translation VARCHAR(255) DEFAULT NULL, is_forbidden TINYINT DEFAULT 0 NOT NULL, keep_as_is TINYINT DEFAULT 0 NOT NULL, notes LONGTEXT DEFAULT NULL, term VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, project_id INT NOT NULL, locale_id INT NOT NULL, INDEX IDX_334345DD166D1F9C (project_id), INDEX IDX_334345DDE559DFD1 (locale_id), INDEX idx_glossary_lookup (project_id, locale_id), UNIQUE INDEX uniq_glossary_term (project_id, locale_id, term), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE invitation (id INT AUTO_INCREMENT NOT NULL, role VARCHAR(16) DEFAULT NULL, locale_codes JSON NOT NULL, is_external TINYINT DEFAULT 0 NOT NULL, accepted_at DATETIME DEFAULT NULL, revoked_at DATETIME DEFAULT NULL, email VARCHAR(180) NOT NULL, token_hash BINARY(32) NOT NULL, expires_at DATETIME NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, project_id INT DEFAULT NULL, invited_by_id INT DEFAULT NULL, organization_id INT NOT NULL, INDEX IDX_F11D61A2166D1F9C (project_id), INDEX IDX_F11D61A2A7B4A7E3 (invited_by_id), INDEX IDX_F11D61A232C8A3DE (organization_id), INDEX idx_invitation_email (organization_id, email), UNIQUE INDEX uniq_invitation_token (token_hash), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE key_comment (id INT AUTO_INCREMENT NOT NULL, resolved_at DATETIME DEFAULT NULL, body LONGTEXT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, locale_id INT DEFAULT NULL, resolved_by_id INT DEFAULT NULL, translation_key_id INT NOT NULL, author_id INT NOT NULL, INDEX IDX_F6A27652E559DFD1 (locale_id), INDEX IDX_F6A276526713A32B (resolved_by_id), INDEX IDX_F6A27652D07ED992 (translation_key_id), INDEX IDX_F6A27652F675F31B (author_id), INDEX idx_comment_key (translation_key_id, created_at), INDEX idx_comment_open (translation_key_id, resolved_at), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE key_screenshot (id INT AUTO_INCREMENT NOT NULL, caption VARCHAR(255) DEFAULT NULL, width INT DEFAULT NULL, height INT DEFAULT NULL, path VARCHAR(400) NOT NULL, mime_type VARCHAR(100) NOT NULL, size_bytes INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, uploaded_by_id INT DEFAULT NULL, translation_key_id INT NOT NULL, INDEX IDX_E83440FEA2B28FE8 (uploaded_by_id), INDEX idx_screenshot_key (translation_key_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE locale (id INT AUTO_INCREMENT NOT NULL, code VARCHAR(16) NOT NULL, name VARCHAR(120) NOT NULL, native_name VARCHAR(120) NOT NULL, direction VARCHAR(3) DEFAULT \'ltr\' NOT NULL, plural_categories JSON NOT NULL, fallback_locale_id INT DEFAULT NULL, INDEX IDX_4180C6983AE764FC (fallback_locale_id), UNIQUE INDEX uniq_locale_code (code), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE platform (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, sort_order INT DEFAULT 0 NOT NULL, export_layout VARCHAR(16) DEFAULT \'nested\' NOT NULL, default_max_length INT DEFAULT NULL, name VARCHAR(80) NOT NULL, slug VARCHAR(80) NOT NULL, kind VARCHAR(16) DEFAULT \'other\' NOT NULL, message_format VARCHAR(16) DEFAULT \'icu\' NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, project_id INT NOT NULL, UNIQUE INDEX UNIQ_3952D0CBD17F50A6 (uuid), INDEX IDX_3952D0CB166D1F9C (project_id), UNIQUE INDEX uniq_platform_project_slug (project_id, slug), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE project (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, description LONGTEXT DEFAULT NULL, key_naming_pattern VARCHAR(255) DEFAULT NULL, default_max_length INT DEFAULT NULL, name VARCHAR(120) NOT NULL, slug VARCHAR(120) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, organization_id INT NOT NULL, source_locale_id INT NOT NULL, UNIQUE INDEX UNIQ_2FB3D0EED17F50A6 (uuid), INDEX IDX_2FB3D0EE32C8A3DE (organization_id), INDEX IDX_2FB3D0EE8DC74C1F (source_locale_id), UNIQUE INDEX uniq_project_org_slug (organization_id, slug), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE project_locale (id INT AUTO_INCREMENT NOT NULL, is_enabled TINYINT DEFAULT 1 NOT NULL, sort_order INT DEFAULT 0 NOT NULL, project_id INT NOT NULL, locale_id INT NOT NULL, INDEX IDX_56242DD2166D1F9C (project_id), INDEX IDX_56242DD2E559DFD1 (locale_id), UNIQUE INDEX uniq_project_locale (project_id, locale_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE project_member (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, role VARCHAR(16) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, project_id INT NOT NULL, user_id INT NOT NULL, UNIQUE INDEX UNIQ_67401132D17F50A6 (uuid), INDEX IDX_67401132166D1F9C (project_id), INDEX idx_member_user (user_id), UNIQUE INDEX uniq_project_member (project_id, user_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE member_locale (project_member_id INT NOT NULL, locale_id INT NOT NULL, INDEX IDX_655644AB64AB9629 (project_member_id), INDEX IDX_655644ABE559DFD1 (locale_id), PRIMARY KEY (project_member_id, locale_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE project_release (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, notes LONGTEXT DEFAULT NULL, key_count INT DEFAULT 0 NOT NULL, published_at DATETIME DEFAULT NULL, version INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, created_by_id INT DEFAULT NULL, project_id INT NOT NULL, UNIQUE INDEX UNIQ_8590F78D17F50A6 (uuid), INDEX IDX_8590F78B03A8386 (created_by_id), INDEX IDX_8590F78166D1F9C (project_id), INDEX idx_release_published (project_id, published_at), UNIQUE INDEX uniq_release_project_version (project_id, version), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE release_bundle (id INT AUTO_INCREMENT NOT NULL, key_count INT DEFAULT 0 NOT NULL, size_bytes INT DEFAULT 0 NOT NULL, fallback_count INT DEFAULT 0 NOT NULL, payload LONGTEXT NOT NULL, checksum BINARY(32) NOT NULL, format VARCHAR(16) NOT NULL, layout VARCHAR(16) NOT NULL, release_id INT NOT NULL, platform_id INT NOT NULL, locale_id INT NOT NULL, INDEX IDX_6B994810B12A727D (release_id), INDEX IDX_6B994810FFE6496F (platform_id), INDEX IDX_6B994810E559DFD1 (locale_id), INDEX idx_bundle_checksum (checksum), UNIQUE INDEX uniq_bundle_release_platform_locale (release_id, platform_id, locale_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE translation (id INT AUTO_INCREMENT NOT NULL, value LONGTEXT DEFAULT NULL, status VARCHAR(20) DEFAULT \'untranslated\' NOT NULL, source_checksum BINARY(20) DEFAULT NULL, is_machine_translated TINYINT DEFAULT 0 NOT NULL, updated_at DATETIME NOT NULL, version INT DEFAULT 1 NOT NULL, updated_by_id INT DEFAULT NULL, translation_key_id INT NOT NULL, locale_id INT NOT NULL, INDEX IDX_B469456F896DBBDE (updated_by_id), INDEX IDX_B469456FD07ED992 (translation_key_id), INDEX IDX_B469456FE559DFD1 (locale_id), INDEX idx_translation_grid (translation_key_id, locale_id, status), INDEX idx_translation_stale (locale_id, status, updated_at), UNIQUE INDEX uniq_translation_key_locale (translation_key_id, locale_id), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE translation_key (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, key_hash BINARY(20) NOT NULL, description LONGTEXT DEFAULT NULL, placeholders JSON NOT NULL, max_length INT DEFAULT NULL, is_archived TINYINT DEFAULT 0 NOT NULL, last_seen_at DATETIME DEFAULT NULL, key_path VARCHAR(500) NOT NULL COLLATE `utf8mb4_bin`, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, namespace_id INT DEFAULT NULL, created_by_id INT DEFAULT NULL, project_id INT NOT NULL, UNIQUE INDEX UNIQ_AADCBD56D17F50A6 (uuid), INDEX IDX_AADCBD565F74F783 (namespace_id), INDEX IDX_AADCBD56B03A8386 (created_by_id), INDEX IDX_AADCBD56166D1F9C (project_id), INDEX idx_key_lookup (project_id, namespace_id, key_path), INDEX idx_key_archived (project_id, is_archived), INDEX idx_key_last_seen (project_id, last_seen_at), UNIQUE INDEX uniq_key_project_hash (project_id, key_hash), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE translation_key_platform (translation_key_id INT NOT NULL, platform_id INT NOT NULL, INDEX IDX_8FCD3598D07ED992 (translation_key_id), INDEX IDX_8FCD3598FFE6496F (platform_id), PRIMARY KEY (translation_key_id, platform_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE translation_namespace (id INT AUTO_INCREMENT NOT NULL, depth INT DEFAULT 0 NOT NULL, path VARCHAR(400) NOT NULL COLLATE `utf8mb4_bin`, parent_id INT DEFAULT NULL, project_id INT NOT NULL, INDEX IDX_D10A03DD166D1F9C (project_id), INDEX idx_namespace_parent (parent_id), UNIQUE INDEX uniq_namespace_project_path (project_id, path), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE translation_version (id INT AUTO_INCREMENT NOT NULL, created_at DATETIME NOT NULL, value LONGTEXT DEFAULT NULL, status VARCHAR(20) NOT NULL, change_source VARCHAR(16) NOT NULL, author_id INT DEFAULT NULL, translation_id INT NOT NULL, INDEX IDX_1E102A31F675F31B (author_id), INDEX IDX_1E102A319CAA2B25 (translation_id), INDEX idx_version_translation (translation_id, created_at), INDEX idx_version_author (author_id, created_at), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); $this->addSql('CREATE TABLE app_user (id INT AUTO_INCREMENT NOT NULL, uuid BINARY(16) NOT NULL, password VARCHAR(255) DEFAULT NULL, auth_provider VARCHAR(16) DEFAULT \'local\' NOT NULL, is_external TINYINT DEFAULT 0 NOT NULL, is_active TINYINT DEFAULT 1 NOT NULL, totp_secret VARCHAR(64) DEFAULT NULL, totp_confirmed_at DATETIME DEFAULT NULL, last_login_at DATETIME DEFAULT NULL, ui_locale VARCHAR(16) DEFAULT \'fr\' NOT NULL, roles JSON NOT NULL, email VARCHAR(180) NOT NULL, name VARCHAR(120) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, organization_id INT NOT NULL, UNIQUE INDEX UNIQ_88BDF3E9D17F50A6 (uuid), INDEX idx_user_organization (organization_id), UNIQUE INDEX uniq_user_email (email), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); // File Messenger. Créée ici plutôt que par auto_setup : un DDL implicite // au premier message rendrait le premier démarrage non reproductible, et // masquerait un défaut de droits sur la base jusqu'au pire moment. $this->addSql('CREATE TABLE messenger_messages (id BIGINT AUTO_INCREMENT NOT NULL, body LONGTEXT NOT NULL, headers LONGTEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at DATETIME NOT NULL, available_at DATETIME NOT NULL, delivered_at DATETIME DEFAULT NULL, INDEX IDX_75EA56E0FB7336F0 (queue_name), INDEX IDX_75EA56E0E3BD61CE (available_at), INDEX IDX_75EA56E016BA31DB (delivered_at), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_uca1400_ai_ci`'); // Index couvrant sur la table de jointement des plateformes. // // Doctrine ne sait pas exprimer un index sur une table ManyToMany : il est // déclaré ici à la main. La clé primaire (translation_key_id, platform_id) // sert le MEMBER OF de la requête de grille ; cet index en miroir permet à // l'optimiseur d'attaquer PAR la plateforme quand celle-ci ne porte que // quelques centaines de clés sur les trente mille du projet. // // ⚠ Un `doctrine:migrations:diff` proposera de le SUPPRIMER, puisqu'aucune // métadonnée ne le décrit. Ne pas accepter cette suppression. $this->addSql('CREATE INDEX idx_tkp_platform_key ON translation_key_platform (platform_id, translation_key_id)'); $this->addSql('ALTER TABLE api_key ADD CONSTRAINT FK_C912ED9DB03A8386 FOREIGN KEY (created_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE api_key ADD CONSTRAINT FK_C912ED9D903E3A94 FOREIGN KEY (environment_id) REFERENCES environment (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE audit_log ADD CONSTRAINT FK_F6E1C0F510DAF24A FOREIGN KEY (actor_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE audit_log ADD CONSTRAINT FK_F6E1C0F532C8A3DE FOREIGN KEY (organization_id) REFERENCES organization (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE completion_stat ADD CONSTRAINT FK_C818E4F5166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE completion_stat ADD CONSTRAINT FK_C818E4F5E559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id)'); $this->addSql('ALTER TABLE completion_stat ADD CONSTRAINT FK_C818E4F5FFE6496F FOREIGN KEY (platform_id) REFERENCES platform (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE environment ADD CONSTRAINT FK_4626DE226E91BB0F FOREIGN KEY (current_release_id) REFERENCES project_release (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE environment ADD CONSTRAINT FK_4626DE22166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE glossary_term ADD CONSTRAINT FK_334345DD166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE glossary_term ADD CONSTRAINT FK_334345DDE559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id)'); $this->addSql('ALTER TABLE invitation ADD CONSTRAINT FK_F11D61A2166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE invitation ADD CONSTRAINT FK_F11D61A2A7B4A7E3 FOREIGN KEY (invited_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE invitation ADD CONSTRAINT FK_F11D61A232C8A3DE FOREIGN KEY (organization_id) REFERENCES organization (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE key_comment ADD CONSTRAINT FK_F6A27652E559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE key_comment ADD CONSTRAINT FK_F6A276526713A32B FOREIGN KEY (resolved_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE key_comment ADD CONSTRAINT FK_F6A27652D07ED992 FOREIGN KEY (translation_key_id) REFERENCES translation_key (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE key_comment ADD CONSTRAINT FK_F6A27652F675F31B FOREIGN KEY (author_id) REFERENCES app_user (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE key_screenshot ADD CONSTRAINT FK_E83440FEA2B28FE8 FOREIGN KEY (uploaded_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE key_screenshot ADD CONSTRAINT FK_E83440FED07ED992 FOREIGN KEY (translation_key_id) REFERENCES translation_key (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE locale ADD CONSTRAINT FK_4180C6983AE764FC FOREIGN KEY (fallback_locale_id) REFERENCES locale (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE platform ADD CONSTRAINT FK_3952D0CB166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE project ADD CONSTRAINT FK_2FB3D0EE32C8A3DE FOREIGN KEY (organization_id) REFERENCES organization (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE project ADD CONSTRAINT FK_2FB3D0EE8DC74C1F FOREIGN KEY (source_locale_id) REFERENCES locale (id)'); $this->addSql('ALTER TABLE project_locale ADD CONSTRAINT FK_56242DD2166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE project_locale ADD CONSTRAINT FK_56242DD2E559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id)'); $this->addSql('ALTER TABLE project_member ADD CONSTRAINT FK_67401132166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE project_member ADD CONSTRAINT FK_67401132A76ED395 FOREIGN KEY (user_id) REFERENCES app_user (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE member_locale ADD CONSTRAINT FK_655644AB64AB9629 FOREIGN KEY (project_member_id) REFERENCES project_member (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE member_locale ADD CONSTRAINT FK_655644ABE559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE project_release ADD CONSTRAINT FK_8590F78B03A8386 FOREIGN KEY (created_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE project_release ADD CONSTRAINT FK_8590F78166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE release_bundle ADD CONSTRAINT FK_6B994810B12A727D FOREIGN KEY (release_id) REFERENCES project_release (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE release_bundle ADD CONSTRAINT FK_6B994810FFE6496F FOREIGN KEY (platform_id) REFERENCES platform (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE release_bundle ADD CONSTRAINT FK_6B994810E559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id)'); $this->addSql('ALTER TABLE translation ADD CONSTRAINT FK_B469456F896DBBDE FOREIGN KEY (updated_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE translation ADD CONSTRAINT FK_B469456FD07ED992 FOREIGN KEY (translation_key_id) REFERENCES translation_key (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE translation ADD CONSTRAINT FK_B469456FE559DFD1 FOREIGN KEY (locale_id) REFERENCES locale (id)'); $this->addSql('ALTER TABLE translation_key ADD CONSTRAINT FK_AADCBD565F74F783 FOREIGN KEY (namespace_id) REFERENCES translation_namespace (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE translation_key ADD CONSTRAINT FK_AADCBD56B03A8386 FOREIGN KEY (created_by_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE translation_key ADD CONSTRAINT FK_AADCBD56166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE translation_key_platform ADD CONSTRAINT FK_8FCD3598D07ED992 FOREIGN KEY (translation_key_id) REFERENCES translation_key (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE translation_key_platform ADD CONSTRAINT FK_8FCD3598FFE6496F FOREIGN KEY (platform_id) REFERENCES platform (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE translation_namespace ADD CONSTRAINT FK_D10A03DD727ACA70 FOREIGN KEY (parent_id) REFERENCES translation_namespace (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE translation_namespace ADD CONSTRAINT FK_D10A03DD166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE translation_version ADD CONSTRAINT FK_1E102A31F675F31B FOREIGN KEY (author_id) REFERENCES app_user (id) ON DELETE SET NULL'); $this->addSql('ALTER TABLE translation_version ADD CONSTRAINT FK_1E102A319CAA2B25 FOREIGN KEY (translation_id) REFERENCES translation (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE app_user ADD CONSTRAINT FK_88BDF3E932C8A3DE FOREIGN KEY (organization_id) REFERENCES organization (id) ON DELETE CASCADE'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE api_key DROP FOREIGN KEY FK_C912ED9DB03A8386'); $this->addSql('ALTER TABLE api_key DROP FOREIGN KEY FK_C912ED9D903E3A94'); $this->addSql('ALTER TABLE audit_log DROP FOREIGN KEY FK_F6E1C0F510DAF24A'); $this->addSql('ALTER TABLE audit_log DROP FOREIGN KEY FK_F6E1C0F532C8A3DE'); $this->addSql('ALTER TABLE completion_stat DROP FOREIGN KEY FK_C818E4F5166D1F9C'); $this->addSql('ALTER TABLE completion_stat DROP FOREIGN KEY FK_C818E4F5E559DFD1'); $this->addSql('ALTER TABLE completion_stat DROP FOREIGN KEY FK_C818E4F5FFE6496F'); $this->addSql('ALTER TABLE environment DROP FOREIGN KEY FK_4626DE226E91BB0F'); $this->addSql('ALTER TABLE environment DROP FOREIGN KEY FK_4626DE22166D1F9C'); $this->addSql('ALTER TABLE glossary_term DROP FOREIGN KEY FK_334345DD166D1F9C'); $this->addSql('ALTER TABLE glossary_term DROP FOREIGN KEY FK_334345DDE559DFD1'); $this->addSql('ALTER TABLE invitation DROP FOREIGN KEY FK_F11D61A2166D1F9C'); $this->addSql('ALTER TABLE invitation DROP FOREIGN KEY FK_F11D61A2A7B4A7E3'); $this->addSql('ALTER TABLE invitation DROP FOREIGN KEY FK_F11D61A232C8A3DE'); $this->addSql('ALTER TABLE key_comment DROP FOREIGN KEY FK_F6A27652E559DFD1'); $this->addSql('ALTER TABLE key_comment DROP FOREIGN KEY FK_F6A276526713A32B'); $this->addSql('ALTER TABLE key_comment DROP FOREIGN KEY FK_F6A27652D07ED992'); $this->addSql('ALTER TABLE key_comment DROP FOREIGN KEY FK_F6A27652F675F31B'); $this->addSql('ALTER TABLE key_screenshot DROP FOREIGN KEY FK_E83440FEA2B28FE8'); $this->addSql('ALTER TABLE key_screenshot DROP FOREIGN KEY FK_E83440FED07ED992'); $this->addSql('ALTER TABLE locale DROP FOREIGN KEY FK_4180C6983AE764FC'); $this->addSql('ALTER TABLE platform DROP FOREIGN KEY FK_3952D0CB166D1F9C'); $this->addSql('ALTER TABLE project DROP FOREIGN KEY FK_2FB3D0EE32C8A3DE'); $this->addSql('ALTER TABLE project DROP FOREIGN KEY FK_2FB3D0EE8DC74C1F'); $this->addSql('ALTER TABLE project_locale DROP FOREIGN KEY FK_56242DD2166D1F9C'); $this->addSql('ALTER TABLE project_locale DROP FOREIGN KEY FK_56242DD2E559DFD1'); $this->addSql('ALTER TABLE project_member DROP FOREIGN KEY FK_67401132166D1F9C'); $this->addSql('ALTER TABLE project_member DROP FOREIGN KEY FK_67401132A76ED395'); $this->addSql('ALTER TABLE member_locale DROP FOREIGN KEY FK_655644AB64AB9629'); $this->addSql('ALTER TABLE member_locale DROP FOREIGN KEY FK_655644ABE559DFD1'); $this->addSql('ALTER TABLE project_release DROP FOREIGN KEY FK_8590F78B03A8386'); $this->addSql('ALTER TABLE project_release DROP FOREIGN KEY FK_8590F78166D1F9C'); $this->addSql('ALTER TABLE release_bundle DROP FOREIGN KEY FK_6B994810B12A727D'); $this->addSql('ALTER TABLE release_bundle DROP FOREIGN KEY FK_6B994810FFE6496F'); $this->addSql('ALTER TABLE release_bundle DROP FOREIGN KEY FK_6B994810E559DFD1'); $this->addSql('ALTER TABLE translation DROP FOREIGN KEY FK_B469456F896DBBDE'); $this->addSql('ALTER TABLE translation DROP FOREIGN KEY FK_B469456FD07ED992'); $this->addSql('ALTER TABLE translation DROP FOREIGN KEY FK_B469456FE559DFD1'); $this->addSql('ALTER TABLE translation_key DROP FOREIGN KEY FK_AADCBD565F74F783'); $this->addSql('ALTER TABLE translation_key DROP FOREIGN KEY FK_AADCBD56B03A8386'); $this->addSql('ALTER TABLE translation_key DROP FOREIGN KEY FK_AADCBD56166D1F9C'); $this->addSql('ALTER TABLE translation_key_platform DROP FOREIGN KEY FK_8FCD3598D07ED992'); $this->addSql('ALTER TABLE translation_key_platform DROP FOREIGN KEY FK_8FCD3598FFE6496F'); $this->addSql('ALTER TABLE translation_namespace DROP FOREIGN KEY FK_D10A03DD727ACA70'); $this->addSql('ALTER TABLE translation_namespace DROP FOREIGN KEY FK_D10A03DD166D1F9C'); $this->addSql('ALTER TABLE translation_version DROP FOREIGN KEY FK_1E102A31F675F31B'); $this->addSql('ALTER TABLE translation_version DROP FOREIGN KEY FK_1E102A319CAA2B25'); $this->addSql('ALTER TABLE app_user DROP FOREIGN KEY FK_88BDF3E932C8A3DE'); $this->addSql('DROP TABLE app_user'); $this->addSql('DROP TABLE translation_version'); $this->addSql('DROP TABLE translation_namespace'); $this->addSql('DROP TABLE translation_key_platform'); $this->addSql('DROP TABLE translation_key'); $this->addSql('DROP TABLE translation'); $this->addSql('DROP TABLE release_bundle'); $this->addSql('DROP TABLE project_release'); $this->addSql('DROP TABLE member_locale'); $this->addSql('DROP TABLE project_member'); $this->addSql('DROP TABLE project_locale'); $this->addSql('DROP TABLE project'); $this->addSql('DROP TABLE platform'); $this->addSql('DROP TABLE locale'); $this->addSql('DROP TABLE key_screenshot'); $this->addSql('DROP TABLE key_comment'); $this->addSql('DROP TABLE invitation'); $this->addSql('DROP TABLE glossary_term'); $this->addSql('DROP TABLE environment'); $this->addSql('DROP TABLE completion_stat'); $this->addSql('DROP TABLE audit_log'); $this->addSql('DROP TABLE api_key'); $this->addSql('DROP TABLE organization'); $this->addSql('DROP TABLE messenger_messages'); } }