php - 如何使两个开发数据库与 Doctrine 保持同步?

标签 php mysql doctrine

(如果需要,制作此 CW) 我们是两个开发基于 Web 应用程序(PHP5、ZF、Doctrine、MySQL5)的开发人员。我们每个人都在使用本地网络服务器和本地数据库。数据库架构在 YAML 文件中定义。

保持数据库模式同步的最佳方法是什么?

这是我们的做法:每当开发人员“A”进行更改时,他都会生成一个迁移类。然后他提交迁移文件开发人员“B”执行迁移类。

但是在每次数据库更改时创建一个迁移类是一个相当乏味的过程。

你有更好的解决方案吗?

最佳答案

我不知道你在 Zend Framework with Doctrine 中的表现如何。下面是我在 Symfony 中使用 Propel 时的做法。尽管确切的过程可能有所不同,但基本概念是相同的。

我的 DAL 上有单元测试。

每当架构发生变化时,我们都会检查 yml 和生成的 ORM 代码(您确实有源代码管理,不是吗)。我将签到设置为自动模式,这意味着我将立即获得所有签到。

如果模式更改不影响我的事情,那么我会忽略这些更改。但是如果模式更改破坏了我的东西,那么我将使用 symfony propel build command 重建我的表单、ORM 类等等。 .重建这些基础设施只是一个命令行的事情,所以对我来说没有问题。

最后,重建后,我将运行我的单元测试,以确保一切正常。如果没有,我最好把它们修好!

关于php - 如何使两个开发数据库与 Doctrine 保持同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1488944/

相关文章:

PHP/MySQL - 使用两个数据库,一个是共享的,一个是应用程序实例本地的

关于使用 'header' 重定向的 php google analytics 问题

php - session ID 和搜索脚本

MySQL 分区 : SELECT by ID, 但按日期删除

mysql - 如何将 select 与更新查询一起使用? mysql

php - 如何将 GROUP_BY 与查询构建器和 mySQL >= 5.7 一起使用?

php - 将属性添加到关联类 ManyToMany

php - 如何在没有框架的情况下设置 Doctrine 2

php - 工厂设计模式实现疑惑

mysql - 一个表中的两个 MySQL 时间戳列