¿hay alguna manera de saber la doctrina de forma automática crear tablas de esquema sin necesidad de utilizar este comando:Doctrine crea automáticamente todas las tablas de la base de datos?
Respuesta
Usando SchemaTool y EntityManager puede hacer esto:
$schemaTool = new \Doctrine\ORM\Tools\SchemaTool($entityManager);
$classes = $entityManager->getMetadataFactory()->getAllMetadata();
$schemaTool->createSchema($classes);
¿cómo puedo determinar que el esquema se crea antes o no? –
No creo que haya una forma de ver si el esquema ha sido creado. En mi experiencia, simplemente he usado '$ schemaTool-> dropSChema ($ classes)' antes de crearlo. – trevorengstrom
@Sina Miandashti también puedes hacer un try-catch. 'try {// aquí crea el código de tabla} catch (\ Doctrine \ ORM \ Tools \ ToolsException $ exc) {// Table exists}' – Hokusai
No estoy seguro de lo que quiere hacer, pero si quieres hacerlo desde el código php, se puede comprobar cómo funciona el comando de doctrina y copia el código. Puede encontrarlo aquí:
vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Command/CreateDatabaseDoctrineCommand.php
Si comprueba el método de ejecución, verá cómo se hace. Aparentemente, debe obtener una conexión a través de DBAL DriverManager, que le da acceso a un objeto de esquema, que a su vez tiene un método createDatabase. No lo he intentado yo mismo.
- 1. Lista de todas las tablas en la base de datos
- 2. Hibernate no crea tablas automáticamente
- 3. Renombrar todas las tablas en la base de datos
- 4. ¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
- 5. Listar todas las tablas en una base de datos
- 6. Obtenga todas las tablas y todas las columnas de una base de datos odbc
- 7. Seleccionar de todas las tablas
- 8. Enumeraciones persistentes en las tablas de la base de datos
- 9. rake db: test: prepare no crea todas las tablas
- 10. Alterar las tablas de la base de datos en Django
- 11. Número total de campos en todas las tablas de la base de datos
- 12. Obtenga recuentos de todas las tablas en la base de datos MySQL
- 13. Cómo colocar todas las tablas de la base de datos con manage.py CLI en Django?
- 14. Recuperar una lista de todas las tablas en la base de datos
- 15. Sqlite: ¿Cómo reinicio todas las tablas de la base de datos?
- 16. Psql enumera todas las tablas
- 17. Eliminar datos de todas las tablas en MYSQL
- 18. Hibernate: crear automáticamente/actualización de las tablas de base de datos basado en clases de entidad
- 19. Establecer IDENTITY_INSERT OFF para todas las tablas
- 20. Ordenar columnas en las tablas de la base de datos
- 21. MySQL OPTIMIZE todas las tablas?
- 22. ¿Cómo puedo crear una nueva base de datos SQLite, con todas las tablas, sobre la marcha?
- 23. ¿podemos listar todas las tablas en la base de datos msaccess usando sql?
- 24. ¿La mejor manera de truncar todas las tablas con hibernación?
- 25. Base de datos por aplicación VS Una gran base de datos para todas las aplicaciones
- 26. Reparar todas las tablas de una vez
- 27. Django: elimine todos los datos de todas las tablas (pero conserve las tablas)
- 28. Genere un esquema YAML o modelos para Doctrine a partir de la base de datos MySQL
- 29. Buscar todas las columnas de un cierto tipo en todas las tablas en una base de datos SQL Server
- 30. Uso tablediff de comparar todas las tablas
puede emitir el comando desde php ...? http://php.net/manual/en/function.exec.php –