the_archive_title tag attribute php symfony doctrine-orm fixtures

php - tag - ¿Es posible cargar accesorios de doctrina sin borrar la base de datos?



title html attribute (3)

Es posible actualizar los datos agregados previamente a la base de datos (que se cargó ejecutando la doctrina app / console: fixtures: load ). Utilicé EntityManager-> createQuery para eso.

Pero todavía me pregunto si hay o habrá alguna oportunidad de hacerlo simplemente ejecutando un comando de la aplicación / consola. Algo parecido a la doctrina app / console: schema: update --force , pero aplicado a los datos en sí.

Por ahora tuve que escribir un montón de código para actualizar y anexar mis datos correctamente. Por ejemplo, para hacer que --append funcione tuve que escribir lo siguiente:

class LoadCategoryData implements FixtureInterface { /** * {@inheritDoc} */ public function load(ObjectManager $em) { //a category has name and shortcut name (st) $categories = array ( [0]=> array(''name'' => ''foo'', ''st'' = ''bar''), ... ); foreach ($categories as $cat) { $query = $em->createQuery( "SELECT c FROM MyBundle:Category c WHERE c.st = ?1" )->setParameter(1, $cat[''st''])->getResult(); if (count($query) == 0) { $c = new Category(); $c->setName($cat[''name'']); $c->setSt($cat[''st'']); $em->persist($c); } $em->flush(); } } }

He definido algunos elementos en la doctrine .

Cuando intento correr usando esto

php app/console doctrine:fixtures:load luego me pide que limpie la base de datos.

Es posible cargarlo sin purgar la base de datos.

Recuerdo que Django tiene fixtures que se pueden cargar en tablas separadas sin purgar la base de datos existente


Las DoctrineFixtures son agradables para el primer inicio de una base de datos vacía o en desarrollo, pero no en producción.

Eche un vistazo a DoctrineMigrations and symfonys DcotrineMigrationsBundle , esta es una buena y segura forma de migrar su base de datos en producción.


Usa la opción --append

php app/console help doctrine:fixtures:load Usage: doctrine:fixtures:load [--fixtures[="..."]] [--append] [--em="..."] [--purge-with-truncate] Options: --fixtures The directory or file to load data fixtures from. (multiple values allowed) --append Append the data fixtures instead of deleting all data from the database first. --em The entity manager to use for this command. --purge-with-truncate Purge data by using a database-level TRUNCATE statement