<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20190817081136 extends AbstractMigration
{
public function getDescription(): string
{
return 'Profile and contact tables';
}
/**
* @throws \Doctrine\DBAL\DBALException
*/
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.');
$this->addSql('CREATE TABLE contact (
id UUID NOT NULL,
profile_id UUID DEFAULT NULL,
title VARCHAR(255) NOT NULL,
value VARCHAR(255) NOT NULL,
slug VARCHAR(255) NOT NULL,
created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,
updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_4C62E638989D9B62 ON contact (slug)');
$this->addSql('CREATE INDEX IDX_4C62E638CCFA12B8 ON contact (profile_id)');
$this->addSql('COMMENT ON COLUMN contact.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN contact.profile_id IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE profile (
id UUID NOT NULL,
slug VARCHAR(255) NOT NULL,
created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,
updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,
person_first_name VARCHAR(255) DEFAULT NULL,
person_last_name VARCHAR(255) DEFAULT NULL,
person_surname VARCHAR(255) DEFAULT NULL,
person_gender VARCHAR(255) DEFAULT \'Male\',
person_birth_date DATE DEFAULT NULL,
person_job_title VARCHAR(255) NOT NULL, PRIMARY KEY(id))'
);
$this->addSql('CREATE UNIQUE INDEX UNIQ_8157AA0F989D9B62 ON profile (slug)');
$this->addSql('COMMENT ON COLUMN profile.id IS \'(DC2Type:uuid)\'');
$this->addSql('ALTER TABLE contact ADD CONSTRAINT FK_4C62E638CCFA12B8 FOREIGN KEY (profile_id) REFERENCES profile (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE "hub_user" ADD profile_id UUID DEFAULT NULL');
$this->addSql('COMMENT ON COLUMN "hub_user".profile_id IS \'(DC2Type:uuid)\'');
$this->addSql('ALTER TABLE "hub_user" ADD CONSTRAINT FK_8D93D649CCFA12B8 FOREIGN KEY (profile_id) REFERENCES profile (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE UNIQUE INDEX UNIQ_8D93D649CCFA12B8 ON "hub_user" (profile_id)');
$this->addSql('ALTER INDEX uniq_8d93d649989d9b62 RENAME TO UNIQ_8BD464F5989D9B62');
$this->addSql('ALTER INDEX uniq_8d93d649e7927c74 RENAME TO UNIQ_8BD464F5E7927C74');
$this->addSql('ALTER INDEX uniq_8d93d649ccfa12b8 RENAME TO UNIQ_8BD464F5CCFA12B8');
$this->addSql('ALTER TABLE profile ADD user_id UUID DEFAULT NULL');
$this->addSql('COMMENT ON COLUMN profile.user_id IS \'(DC2Type:uuid)\'');
$this->addSql('ALTER TABLE profile ADD CONSTRAINT FK_8157AA0FA76ED395 FOREIGN KEY (user_id) REFERENCES hub_user (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE UNIQUE INDEX UNIQ_8157AA0FA76ED395 ON profile (user_id)');
}
/**
* @throws \Doctrine\DBAL\DBALException
*/
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.');
$this->addSql('ALTER TABLE "hub_user" DROP CONSTRAINT FK_8D93D649CCFA12B8');
$this->addSql('ALTER TABLE contact DROP CONSTRAINT FK_4C62E638CCFA12B8');
$this->addSql('DROP TABLE contact');
$this->addSql('DROP TABLE profile');
$this->addSql('DROP INDEX UNIQ_8D93D649CCFA12B8');
$this->addSql('ALTER TABLE "hub_user" DROP profile_id');
$this->addSql('ALTER TABLE profile DROP CONSTRAINT FK_8157AA0FA76ED395');
$this->addSql('DROP INDEX UNIQ_8157AA0FA76ED395');
$this->addSql('ALTER TABLE profile DROP user_id');
$this->addSql('ALTER INDEX uniq_8bd464f5e7927c74 RENAME TO uniq_8d93d649e7927c74');
$this->addSql('ALTER INDEX uniq_8bd464f5ccfa12b8 RENAME TO uniq_8d93d649ccfa12b8');
$this->addSql('ALTER INDEX uniq_8bd464f5989d9b62 RENAME TO uniq_8d93d649989d9b62');
}
}