migrations/Version20190817081136.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 Version20190817081136 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Profile and contact tables';
  14.     }
  15.     /**
  16.      * @throws \Doctrine\DBAL\DBALException
  17.      */
  18.     public function up(Schema $schema): void
  19.     {
  20.         // this up() migration is auto-generated, please modify it to your needs
  21.         $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql''Migration can only be executed safely on \'postgresql\'.');
  22.         $this->addSql('CREATE TABLE contact (
  23.             id UUID NOT NULL, 
  24.             profile_id UUID DEFAULT NULL, 
  25.             title VARCHAR(255) NOT NULL, 
  26.             value VARCHAR(255) NOT NULL, 
  27.             slug VARCHAR(255) NOT NULL, 
  28.             created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, 
  29.             updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, PRIMARY KEY(id))');
  30.         $this->addSql('CREATE UNIQUE INDEX UNIQ_4C62E638989D9B62 ON contact (slug)');
  31.         $this->addSql('CREATE INDEX IDX_4C62E638CCFA12B8 ON contact (profile_id)');
  32.         $this->addSql('COMMENT ON COLUMN contact.id IS \'(DC2Type:uuid)\'');
  33.         $this->addSql('COMMENT ON COLUMN contact.profile_id IS \'(DC2Type:uuid)\'');
  34.         $this->addSql('CREATE TABLE profile (
  35.             id UUID NOT NULL, 
  36.             slug VARCHAR(255) NOT NULL, 
  37.             created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, 
  38.             updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, 
  39.             person_first_name VARCHAR(255) DEFAULT NULL, 
  40.             person_last_name VARCHAR(255) DEFAULT NULL, 
  41.             person_surname VARCHAR(255) DEFAULT NULL, 
  42.             person_gender VARCHAR(255) DEFAULT \'Male\', 
  43.             person_birth_date DATE DEFAULT NULL, 
  44.             person_job_title VARCHAR(255) NOT NULL, PRIMARY KEY(id))'
  45.         );
  46.         $this->addSql('CREATE UNIQUE INDEX UNIQ_8157AA0F989D9B62 ON profile (slug)');
  47.         $this->addSql('COMMENT ON COLUMN profile.id IS \'(DC2Type:uuid)\'');
  48.         $this->addSql('ALTER TABLE contact ADD CONSTRAINT FK_4C62E638CCFA12B8 FOREIGN KEY (profile_id) REFERENCES profile (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  49.         $this->addSql('ALTER TABLE "hub_user" ADD profile_id UUID DEFAULT NULL');
  50.         $this->addSql('COMMENT ON COLUMN "hub_user".profile_id IS \'(DC2Type:uuid)\'');
  51.         $this->addSql('ALTER TABLE "hub_user" ADD CONSTRAINT FK_8D93D649CCFA12B8 FOREIGN KEY (profile_id) REFERENCES profile (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  52.         $this->addSql('CREATE UNIQUE INDEX UNIQ_8D93D649CCFA12B8 ON "hub_user" (profile_id)');
  53.         $this->addSql('ALTER INDEX uniq_8d93d649989d9b62 RENAME TO UNIQ_8BD464F5989D9B62');
  54.         $this->addSql('ALTER INDEX uniq_8d93d649e7927c74 RENAME TO UNIQ_8BD464F5E7927C74');
  55.         $this->addSql('ALTER INDEX uniq_8d93d649ccfa12b8 RENAME TO UNIQ_8BD464F5CCFA12B8');
  56.         $this->addSql('ALTER TABLE profile ADD user_id UUID DEFAULT NULL');
  57.         $this->addSql('COMMENT ON COLUMN profile.user_id IS \'(DC2Type:uuid)\'');
  58.         $this->addSql('ALTER TABLE profile ADD CONSTRAINT FK_8157AA0FA76ED395 FOREIGN KEY (user_id) REFERENCES hub_user (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  59.         $this->addSql('CREATE UNIQUE INDEX UNIQ_8157AA0FA76ED395 ON profile (user_id)');
  60.     }
  61.     /**
  62.      * @throws \Doctrine\DBAL\DBALException
  63.      */
  64.     public function down(Schema $schema): void
  65.     {
  66.         // this down() migration is auto-generated, please modify it to your needs
  67.         $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql''Migration can only be executed safely on \'postgresql\'.');
  68.         $this->addSql('ALTER TABLE "hub_user" DROP CONSTRAINT FK_8D93D649CCFA12B8');
  69.         $this->addSql('ALTER TABLE contact DROP CONSTRAINT FK_4C62E638CCFA12B8');
  70.         $this->addSql('DROP TABLE contact');
  71.         $this->addSql('DROP TABLE profile');
  72.         $this->addSql('DROP INDEX UNIQ_8D93D649CCFA12B8');
  73.         $this->addSql('ALTER TABLE "hub_user" DROP profile_id');
  74.         $this->addSql('ALTER TABLE profile DROP CONSTRAINT FK_8157AA0FA76ED395');
  75.         $this->addSql('DROP INDEX UNIQ_8157AA0FA76ED395');
  76.         $this->addSql('ALTER TABLE profile DROP user_id');
  77.         $this->addSql('ALTER INDEX uniq_8bd464f5e7927c74 RENAME TO uniq_8d93d649e7927c74');
  78.         $this->addSql('ALTER INDEX uniq_8bd464f5ccfa12b8 RENAME TO uniq_8d93d649ccfa12b8');
  79.         $this->addSql('ALTER INDEX uniq_8bd464f5989d9b62 RENAME TO uniq_8d93d649989d9b62');
  80.     }
  81. }