videos uscis tiene sobre mundo migratorio migracion inmigracion gratis estatus cuentas bancarias ayuda acceso symfony doctrine-orm migration

symfony - tiene - uscis



Usar EntityManager en el archivo de Migraciones (2)

Tengo este código pero no funciona:

<?php namespace Application/Migrations; use Doctrine/DBAL/Migrations/AbstractMigration, Doctrine/DBAL/Schema/Schema; /** * Auto-generated Migration: Please modify to your need! */ class Version20131021150555 extends AbstractMigration { public function up(Schema $schema) { // this up() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on ''mysql''."); $this->addSql("ALTER TABLE person ADD tellphone LONGTEXT DEFAULT NULL"); $em = $em = $this->getDoctrine()->getEntityManager(); $persons = $em->getRepository(''AutogestionBundle:Person'')->fetchAll(); foreach($persons as $person){ $person->setTellPhone($person->getCellPhone()); $em->persist($person); } $em->flush(); } public function down(Schema $schema) { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on ''mysql''."); $this->addSql("ALTER TABLE person DROP tellphone"); } }

He añadido información en el teléfono móvil en un nuevo teléfono de campo.

Gracias


Debe llamar a sus modificaciones en el método addSql() - addSql() - Las declaraciones se ejecutarán una vez que se complete el método up() , por lo que sus nuevas filas (es decir, el teléfono) no estarán disponibles durante el método up() .


Esto puede ser una publicación anterior, pero mientras tanto el problema se resuelve y es parte de la documentación actual.

Consulte http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html#container-aware-migrations

// ... use Symfony/Component/DependencyInjection/ContainerAwareInterface; use Symfony/Component/DependencyInjection/ContainerInterface; use Symfony/Component/DependencyInjection/ContainerAwareTrait; class Version20130326212938 extends AbstractMigration implements ContainerAwareInterface { use ContainerAwareTrait; public function up(Schema $schema) { // ... migration content } public function postUp(Schema $schema) { $em = $this->container->get(''doctrine.orm.entity_manager''); // ... update the entities } }