Tenemos la mejor solución que encontramos en línea. Nuestro deseo es que te resulte de mucha utilidad y si deseas compartir algo que nos pueda ayudar a perfeccionar nuestra información hazlo con libertad.
Solución:
En realidad, usar Doctrine no tiene ningún sentido para hacer algo como lo que sugieres.
Doctrine es una herramienta ORM (Mapeo relacional de objetos). Significa que quieres abstraer la base de datos de tu código PHP, delegas las cosas de la base de datos a Doctrine. Doctrine hace un trabajo maravilloso en esa área.
Como desea mantener a sus clientes/compañeros actualizados con la última versión del modelo, debe usar las Migraciones de Doctrine ( http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html ). Esa es la forma de administrar las actualizaciones de la base de datos. Además, le brinda un control completo sobre qué hacer al actualizar/degradar la base de datos. Podría, por ejemplo, establecer valores predeterminados antes de agregar el FK.
Los pasos para agregar una nueva propiedad en la clase deben ser:
Para Symfony 2:
-
modificar la clase por:
-
AcmeMyBundleEntityCustomer y agregue la propiedad que desee;
AcmeMyBundleEntityCustomer
-
o modificar el archivo de doctrina:
Acme/MyBundle/Resources/config/doctrine/customer.yml
-
-
ejecute el comando de la consola (agregará el conjunto/entrada adecuado en la clase)
php app/console doctrine:generate:entities AcmeMyBundle:Customer
-
ejecutar el comando de la consola
php app/console doctrine:migrations:diff
-
ejecute el comando de la consola (colocará un nuevo archivo en la aplicación/DoctrineMigrations)
php app/console doctrine:migrations:migrate
Cuando está implementando la nueva versión del código, todo lo que tiene que hacer es actualizar el código fuente y ejecutar el comando anterior.
Para Symfony 3:
-
modificar la clase por:
-
AcmeMyBundleEntityCustomer y agregue la propiedad que desee;
AcmeMyBundleEntityCustomer
-
o modificar el archivo de doctrina:
Acme/MyBundle/Resources/config/doctrine/customer.yml
-
-
ejecute el comando de la consola (agregará el conjunto/entrada adecuado en la clase)
php bin/console doctrine:generate:entities AcmeMyBundle:Customer
-
ejecute el comando de consola (actualizar base de datos)
php bin/console doctrine:schema:update --force
Definitivamente SÍ desea abrir el archivo PHP/XML/YML donde se define su entidad y agregar la columna allí. Luego, usas la línea de comando y dices
console doctrine:schema:update
De esa manera, las definiciones de su entidad están sincronizadas con la base de datos y su base de datos se actualiza.
Agregar nueva columna en entidad existente en Symfony. Tengo el mismo problema están ahí. después de una larga investigación, las mejores soluciones están ahí.
trabajo de solución en Symfony 4
Ejemplo:
Entidad de blog ya creada dentro de uno nombre columna están ahí y quiero agregar columna de descripción. tan simple entrar
php bin/console make:entity Blog
Después de ejecutar este comando, desea agregar una nueva columna
Te invitamos a confirmar nuestra investigación fijando un comentario y valorándolo te damos la bienvenida.