从Doctrine生成MySql方案(使用ZF2)

时间:2015-04-18 15:19:46

标签: doctrine-orm zend-framework2

是否有任何第三方工具可以从学说方案生成Mysql数据库?

我正在使用带有Skipper的Doctrine Orm 2的ZF2来生成我的实体。但是,在生成我的MySql数据库时,我是通过Workbench来完成的。问题是这个DB并不总是遵循我对Skipper文件所做的更改和更新。

现在我知道我可以使用提供的工具通过Doctrine的供应商文件夹进行更新,但由于其他供应商模块在控制台模式下崩溃环境,我无法使其工作。 ZfcRbac / Oauth2和其他刚刚在命令行中运行良好的人。

所以我的问题很简单,是否有一个简单的第三方工具可以用来节省时间和挫折,或者至少可以使用其他一些技术?

谢谢!

1 个答案:

答案 0 :(得分:3)

同步数据库的最佳方法是使用Doctrine Migrations。每次更新实体时,无论如何 - 手动或使用Skypper,都应该创建迁移。我的工作流程是:

1)我修改了一些实体,假设添加了一个新属性;

2)然后我使用Doctrine orm工具生成实体访问器。 /如果您已经拥有它们,由Skypper生成,则可以跳过此步骤/

$php public/index.php orm:generate-entities --update-entities="true" --generate-methods="true" module/Application/src

3)更新:生成学说代理

$php public/index.php orm:generate:proxies

4)下一步是生成迁移:

$php public/index.php migrations:diff 

5)最后一步是执行迁移并使数据库与新模式同步:

$php public/index.php migrations:migrate

这就是全部,现在您的数据库已同步。我不确定是否有第三方库。如果您遇到其他模块的问题,最好检查一下您的配置是否正在修复它们。