2010-06-29 92 views

回答

0

这取决于你可以如何允许两个数据库。

一种配置可能是将two databases replicated的生产服务器配置为主配置,将测试服务器配置为从服务器。除非您绝对需要将实时数据与测试基础架构同步,否则我会谨慎使用此方法,请勿沿此路线前进。

相反,如果要保持两个实例分开,只需要replicate with mysqldumps

0

我版本控制SQL转储(由mysqldump所作)。我发现它通常是一个很好的便携式格式。

某些平台具有像Django's Fixtures这样的概念,它们将模型数据转储为JSON或XML文件,以便您可以将其版本控制到服务器或从服务器进行控制,并在需要时将其加载。你是否有这样的可用取决于你的平台。

您正在讨论在生产环境中获取实时版本。如果我是你,我会接近临近。 Cron在服务器上创建一个转储脚本,并编写一个脚本将其引入您的生产环境或仅依靠版本控制。

任何超过临近生命的东西都可能是双向的,并且存在实时数据风险。

0

我使用Navicat来同步我的开发和生产服务器。 Navicat产品允许结构同步(即新字段)和数据同步(数据)。主要限制是您无法同步任何没有主键的表。如果有很多记录要传输,并不总是那么快。

+0

不应该有一个没有主键的表! – HLGEM 2010-06-29 19:52:19

0

我们执行所有数据库开发脚本,包括将查询记录添加到查找表的脚本。这些脚本在源代码控制中,并像其他任何代码一样进行版本控制。要将更改从dev发送到prod,我们运行该版本的脚本。这将包括查找类型表所需的任何更改以及表结构更改,sps,用户定义的函数,视图等等。即使没有脚本(我们有一个配置管理团队不会影响开发人员),它也不能被剥夺,对于使用脚本或源代码控制的人来说,我们没有任何问题。

要从prod回到dev,我们重新启动最后的prod备份,然后重新运行尚未提升为prod的开发脚本。

相关问题