Symfony项目中的MySQL模式管理



所以我想开始学习Symfony,我想把它做好。因此,我现在正在考虑管理模式的最佳方式。到目前为止,我主要使用phpMyAdmin来创建我的表。但最近我采取了不同的方法。我开始使用工作台ERD建模,我真的很喜欢它。当它强制排序时,请提前考虑数据库结构。我发现了这个:

https://github.com/johmue/mysql-workbench-schema-exporter

这将工作台ERD导出到(我认为)Doctrine实体。

我想到的另一种方法是使用迁移。但是,迁移似乎只是一种更乏味的选项,它会给出相同的结果(减去实际的实体类),因为您必须自己键入所有的关系。而在工作台中则是拖放。

所以我想,真正的问题是,第一种方法有多可靠?有人用过吗?您会推荐使用迁移吗?如果是,为什么呢?还有别的办法吗,我可能不知道?

如果你想要更可靠的解决方案来生成你的Doctrine2 ORM定义(在YML, XML或注释格式),你可以看看Skipper应用程序。

这是ORM框架(Doctrine, Doctrine2, MongoDB ODM,…)的可视化编辑器,具有模式定义导入/导出支持。

我使用这两种方法。使用第一种方法,您可以在开始创建与现有DB模式相关的实体时捕获原则错误。使用第二种方法,可以捕获外键和现有数据的一些问题(当更改列类型时)。我认为第二种方法更简单,并且包含可预测的行为。

Symfony项目是基于"代码优先"原则构建的。这意味着您应该在数据库中创建实体而不是表。您可以在本文中找到更多信息。

最新更新