我的组织正在从头开始重写我们的数据库驱动的网站,包括一个全新的数据库模式。
在当前设置中,实时网站和测试网站使用完全相同的数据库。
我们希望下一个版本有一个单独的数据库,为现场和测试版本的网站。
使用测试中的新架构更改更新数据库的实时版本不是问题。
问题是实时数据库上的数据不断变化。例如,用户上传图片、修改元数据、创建新对象等。
如何使测试服务器上的数据与实时服务器上用户输入的数据保持同步?

最佳答案

一般来说,你不会保持同步。测试数据库是一个独立的系统,其中的数据应该被生成,因此您可以转储它并在不同的测试之间恢复其状态。
无论何时更改模式,都应该针对测试数据库生成“迁移”(由RoR填充,但这是个好主意)。迁移是将数据库布局更新为新架构的ALTER TABLE语句。然后,在升级实时数据库时,可以对其运行迁移。
当然,事先,将真实的数据库转储到另一个测试数据库以确保迁移顺利进行无疑是一个好主意。。。所以是的。
我将剥离一对数据库,然后看看如何正确地开始单元测试。如果您正在寻找一个更现成的解决方案,我会将实时数据库复制到测试数据库,并使用cron作业每晚运行迁移。

关于mysql - 数据库设计:用于PHP网站的独立实时数据库和测试数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3137245/

10-14 13:56
查看更多