migrations/Version20260603133916.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7. * Auto-generated Migration: Please modify to your needs!
  8. */
  9. final class Version20260603133916 extends AbstractMigration
  10. {
  11. public function getDescription(): string
  12. {
  13. return 'Make tc_assets.workstation_id nullable and create tc_assets_checksheet mapping table';
  14. }
  15. public function up(Schema $schema): void
  16. {
  17. $this->addSql('ALTER TABLE tc_assets MODIFY workstation_id INT NULL');
  18. $this->addSql('CREATE TABLE tc_assets_checksheet
  19. (id INT AUTO_INCREMENT NOT NULL,
  20. asset_id INT NOT NULL,
  21. checksheet_id INT NOT NULL,
  22. created_at DATETIME NOT NULL,
  23. PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  24. $this->addSql('CREATE INDEX IDX_asset_id ON tc_assets_checksheet (asset_id)');
  25. $this->addSql('CREATE INDEX IDX_checksheet_id ON tc_assets_checksheet (checksheet_id)');
  26. $this->addSql('ALTER TABLE tc_assets_checksheet ADD CONSTRAINT FK_tac_asset FOREIGN KEY (asset_id) REFERENCES tc_assets (id)');
  27. $this->addSql('ALTER TABLE tc_assets_checksheet ADD CONSTRAINT FK_tac_checksheet FOREIGN KEY (checksheet_id) REFERENCES tc_checksheet (id)');
  28. }
  29. public function down(Schema $schema): void
  30. {
  31. $this->addSql('ALTER TABLE tc_assets_checksheet DROP FOREIGN KEY FK_tac_asset');
  32. $this->addSql('ALTER TABLE tc_assets_checksheet DROP FOREIGN KEY FK_tac_checksheet');
  33. $this->addSql('DROP TABLE tc_assets_checksheet');
  34. $this->addSql('ALTER TABLE tc_assets MODIFY workstation_id INT NOT NULL');
  35. }
  36. }