<?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 Version20221101071334 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE job (id SERIAL NOT NULL, sport_object_id INT DEFAULT NULL, sport_object_section_id INT DEFAULT NULL, person_id INT NOT NULL, position_id INT DEFAULT NULL, phone VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_FBD8E0F88AFAE46 ON job (sport_object_id)');
$this->addSql('CREATE INDEX IDX_FBD8E0F852AA20D4 ON job (sport_object_section_id)');
$this->addSql('CREATE INDEX IDX_FBD8E0F8217BBB47 ON job (person_id)');
$this->addSql('CREATE INDEX IDX_FBD8E0F8DD842E46 ON job (position_id)');
$this->addSql('COMMENT ON TABLE job IS \'Справочник, кто в какой должности где работает\'');
$this->addSql('COMMENT ON COLUMN job.phone IS \'Телефон для контакта\'');
$this->addSql('COMMENT ON COLUMN job.email IS \'Email для контакта\'');
$this->addSql('CREATE TABLE position (id SERIAL NOT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('COMMENT ON TABLE position IS \'Справочник должностей\'');
$this->addSql('COMMENT ON COLUMN position.name IS \'Наименование должности\'');
$this->addSql('COMMENT ON COLUMN position.code IS \'Внутренний служебный идентификатор\'');
$this->addSql('ALTER TABLE job ADD CONSTRAINT FK_FBD8E0F88AFAE46 FOREIGN KEY (sport_object_id) REFERENCES sport_object (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE job ADD CONSTRAINT FK_FBD8E0F852AA20D4 FOREIGN KEY (sport_object_section_id) REFERENCES sport_object_section (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE job ADD CONSTRAINT FK_FBD8E0F8217BBB47 FOREIGN KEY (person_id) REFERENCES person (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE job ADD CONSTRAINT FK_FBD8E0F8DD842E46 FOREIGN KEY (position_id) REFERENCES position (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE person RENAME COLUMN NAME TO first_name');
$this->addSql('ALTER TABLE person RENAME COLUMN patronymic TO second_name');
$this->addSql('ALTER TABLE person RENAME COLUMN family TO last_name');
}
public function postUp(Schema $schema): void
{
$this->connection->insert('position', ['name' => 'Тренер', 'code' => 'trainer']);
$this->connection->insert('position', ['name' => 'Помощник тренера', 'code' => 'trainer_assist']);
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE job DROP CONSTRAINT FK_FBD8E0F88AFAE46');
$this->addSql('ALTER TABLE job DROP CONSTRAINT FK_FBD8E0F852AA20D4');
$this->addSql('ALTER TABLE job DROP CONSTRAINT FK_FBD8E0F8217BBB47');
$this->addSql('ALTER TABLE job DROP CONSTRAINT FK_FBD8E0F8DD842E46');
$this->addSql('DROP TABLE job');
$this->addSql('DROP TABLE position');
$this->addSql('ALTER TABLE person RENAME COLUMN first_name TO NAME');
$this->addSql('ALTER TABLE person RENAME COLUMN last_name TO family');
$this->addSql('ALTER TABLE person RENAME COLUMN second_name TO patronymic');
}
}