diff --git a/Resources/config/doctrine/AccompanyingPeriod.ClosingMotive.orm.yml b/Resources/config/doctrine/AccompanyingPeriod.ClosingMotive.orm.yml index 85f37c603..5e3d01787 100644 --- a/Resources/config/doctrine/AccompanyingPeriod.ClosingMotive.orm.yml +++ b/Resources/config/doctrine/AccompanyingPeriod.ClosingMotive.orm.yml @@ -1,4 +1,5 @@ Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive: + table: chill_person_closingmotive type: entity id: id: diff --git a/Resources/config/doctrine/AccompanyingPeriod.orm.yml b/Resources/config/doctrine/AccompanyingPeriod.orm.yml index fa9718c84..9b2ebe225 100644 --- a/Resources/config/doctrine/AccompanyingPeriod.orm.yml +++ b/Resources/config/doctrine/AccompanyingPeriod.orm.yml @@ -1,5 +1,5 @@ Chill\PersonBundle\Entity\AccompanyingPeriod: - table: accompanying_period + table: chill_person_accompanying_period type: entity id: id: diff --git a/Resources/config/doctrine/MaritalStatus.orm.yml b/Resources/config/doctrine/MaritalStatus.orm.yml index 112463c43..09ed0990d 100644 --- a/Resources/config/doctrine/MaritalStatus.orm.yml +++ b/Resources/config/doctrine/MaritalStatus.orm.yml @@ -1,5 +1,5 @@ Chill\PersonBundle\Entity\MaritalStatus: - table: marital_status + table: chill_person_marital_status type: entity id: id: @@ -8,4 +8,4 @@ Chill\PersonBundle\Entity\MaritalStatus: fields: name: type: json_array - lifecycleCallbacks: { } \ No newline at end of file + lifecycleCallbacks: { } diff --git a/Resources/config/doctrine/Person.orm.yml b/Resources/config/doctrine/Person.orm.yml index bdc066aae..505ac7032 100644 --- a/Resources/config/doctrine/Person.orm.yml +++ b/Resources/config/doctrine/Person.orm.yml @@ -1,6 +1,6 @@ Chill\PersonBundle\Entity\Person: type: entity - table: null + table: chill_person_person indexes: person_names: columns: [firstName, lastName] diff --git a/Resources/migrations/Version20150607231010.php b/Resources/migrations/Version20150607231010.php index 38abb3e47..aff95bb46 100644 --- a/Resources/migrations/Version20150607231010.php +++ b/Resources/migrations/Version20150607231010.php @@ -4,78 +4,56 @@ namespace Application\Migrations; use Doctrine\DBAL\Migrations\AbstractMigration; use Doctrine\DBAL\Schema\Schema; -use Symfony\Component\DependencyInjection\ContainerAwareInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; use Chill\MainBundle\Entity\Center; /** * Add a center to class person - * */ -class Version20150607231010 extends AbstractMigration implements ContainerAwareInterface +class Version20150607231010 extends AbstractMigration { - /** - * - * @var ContainerInterface - */ - private $container; - - public function setContainer(ContainerInterface $container = null) - { - if ($container === NULL) { - throw new \RuntimeException('Container is not provided. This migration ' - . 'need container to set a default center'); - } - - $this->container = $container; - } - public function getDescription() { return 'Add a center on the person entity. The default center is the first ' . 'recorded.'; } - - + + /** * @param Schema $schema */ public function up(Schema $schema) { - $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'postgresql', 'Migration can only be executed safely on \'postgresql\'.'); - + $this->abortIf( + $this->connection->getDatabasePlatform()->getName() != 'postgresql', + 'Migration can only be executed safely on \'postgresql\'.' + ); + // retrieve center for setting a default center - $centers = $this->container->get('doctrine.orm.entity_manager') - ->getRepository('ChillMainBundle:Center') - ->findAll(); - - + $centers = $this->connection->fetchAll('SELECT id FROM centers'); + if (count($centers) > 0) { - $defaultCenterId = $centers[0]->getId(); + $defaultCenterId = $centers[0]['id']; } else { // if no center, performs other checks //check if there are data in person table - $nbPeople = $this->container->get('doctrine.orm.entity_manager') - ->createQuery('SELECT count(p) FROM ChillPersonBundle:Person p') - ->getSingleScalarResult(); - + $nbPeople = $this->connection->fetchColumn('SELECT count(*) FROM person'); + if ($nbPeople > 0) { // we have data ! We have to create a center ! - $center = new Center(); - $center->setName('Auto-created center'); - $this->container->get('doctrine.orm.entity_manager') - ->persist($center) - ->flush(); - $defaultCenterId = $center->getId(); + $newCenterId = $this->connection->fetchColumn('SELECT nextval(\'centers_id_seq\');'); + $this->addSql( + 'INSERT INTO centers (id, name) VALUES (:id, :name)', + ['id' => $newCenterId, 'name' => 'Auto-created center'] + ); + $defaultCenterId = $newCenterId; } - } - + } $this->addSql('ALTER TABLE person ADD center_id INT'); - + if (isset($defaultCenterId)) { $this->addSql('UPDATE person SET center_id = :id', array('id' => $defaultCenterId)); } - + $this->addSql('ALTER TABLE person ' . 'ADD CONSTRAINT FK_person_center FOREIGN KEY (center_id) ' . 'REFERENCES centers (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); @@ -88,13 +66,13 @@ class Version20150607231010 extends AbstractMigration implements ContainerAwareI */ public function down(Schema $schema) { - $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'postgresql', 'Migration can only be executed safely on \'postgresql\'.'); + $this->abortIf( + $this->connection->getDatabasePlatform()->getName() != 'postgresql', + 'Migration can only be executed safely on \'postgresql\'.' + ); $this->addSql('ALTER TABLE Person DROP CONSTRAINT FK_person_center'); $this->addSql('DROP INDEX IDX_person_center'); $this->addSql('ALTER TABLE Person DROP center_id'); } - - - } diff --git a/Resources/migrations/Version20160818151130.php b/Resources/migrations/Version20160818151130.php new file mode 100644 index 000000000..975ce5a35 --- /dev/null +++ b/Resources/migrations/Version20160818151130.php @@ -0,0 +1,46 @@ +addSql('ALTER TABLE person RENAME TO chill_person_person'); + $this->addSql('ALTER TABLE person_id_seq RENAME TO chill_person_person_id_seq'); + + $this->addSql('ALTER TABLE marital_status RENAME TO chill_person_marital_status'); + + $this->addSql('ALTER TABLE accompanying_period RENAME TO chill_person_accompanying_period'); + $this->addSql('ALTER TABLE accompanying_period_id_seq RENAME TO chill_person_accompanying_period_id_seq'); + + $this->addSql('ALTER TABLE closingmotive RENAME TO chill_person_closingmotive'); + $this->addSql('ALTER TABLE closingmotive_id_seq RENAME TO chill_person_closingmotive_id_seq'); + } + + /** + * @param Schema $schema + */ + public function down(Schema $schema) + { + $this->addSQL('ALTER TABLE chill_person_person RENAME TO person'); + $this->addSql('ALTER TABLE chill_person_person_id_seq RENAME TO person_id_seq'); + + $this->addSQL('ALTER TABLE chill_person_marital_status RENAME TO marital_status '); + + $this->addSQl('ALTER TABLE chill_person_accompanying_period RENAME TO accompanying_period'); + $this->addSql('ALTER TABLE chill_person_accompanying_period_id_seq RENAME TO accompanying_period_id_seq'); + + $this->addSQL('ALTER TABLE chill_person_closingmotive RENAME TO closingmotive'); + $this->addSql('ALTER TABLE chill_person_closingmotive_id_seq RENAME TO closingmotive_id_seq'); + } +}