Hey. Tengo dificultades para migrar los cambios que hice en mi archivo config/doctrine/schema.yml.Mejor uso de modelos y migración en Symfony
Agregué la columna age
a la tabla user
. Luego hice un php symfony doctrine:generate-migrations-diff
seguido de php symfony doctrine:migrate
.
Al buscar en mi base de datos, ahora se agrega la columna age
, sin borrar ningún dato.
Pero, mi /lib/model/doctrine/base/BaseUser.class.php no ha cambiado, no hay age
campo o funciones para age
. Así que también hice el comando php symfony doctrine:build-model
. Finalmente, el modelo se actualiza/migra también.
Así que me pregunto, ¿es esta la única manera? Parece mucho trabajo, y me temo perder algo cada vez que lo hago.
Podría ir directamente a phpmyadmin, agregar cambios en la base de datos allí y simplemente hacer un php symfony doctrine:build-schema
, y así omitir la parte de migración (dos comandos).
Además, cuando se trata de usar modelos, ¿no es cierto que /lib/model/doctrine/User.class.php es donde puedo hacer funciones y cosas así para mi "clase de datos" de usuario? Me gusta, haciendo una función isFemale
. Si no, ¿dónde estaría ese tipo de función?
Esto podría ser una mala pregunta, pero ¿por qué la capa del modelo está dentro de la ruta/lib/doctrine? Por lo que he aprendido, mantienes los módulos dentro de las aplicaciones, donde creas tu vista y tu controlador. ¿Por qué debería el modelo estar afuera? De esta manera puedo hacer modelos sin controlador y vista adjuntos?
Gracias.
+1 para una respuesta bien escrita y explicada –
Ahora acabo de recibir un error, no pude generar clases de migración de la diferencia. No hay otro error que eso :( – Johannes
Johannes, significa que el esquema y los modelos están sincronizados. Recuerde no crear modelos hasta que cree migraciones. – Darmen