我有一个应用程序,其数据库按实体的学说进行管理。
我的应用程序需要动态创建没有实体的表。 (以编程方式)
当我执行doctrine:schema:update命令时,动态创建的表将被删除。
如果我添加
#schema_filter: ~^(?!g_)~
对于 dbal 配置,
doctrine:schema:update
忽略我的表格。很好啊。
另一方面,当我使用时:
$currentSchema = $sm->introspectSchema();
$newSchema = clone $currentSchema;
$table = $newSchema->getTable('g_cars');
$table->addColumn("zoby", "string", []);
getTable
没有找到我的桌子(由我自己管理,不按教义管理)。
如何保持由学说管理的实体以及使用
SchemaManager
在编程中创建的表?
我们应该覆盖
doctrine:schema:update
命令吗?
我解决了我的问题。
对于那些感兴趣的人,我建立了自己的学说:schema:update 命令。
我的命令,从数据库内省模式。 我从学说实体和我的自定义逻辑构建另一个模式。 感谢 SchemaTool,我比较了模式之间的差异。
结果,我需要执行 SQL 查询来同步我的数据库架构。
我希望这可以帮助遇到同样问题的人。