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.
// ...
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
}
}