2

我通常使用 git 作为 WordPress 代码的版本控制系统。但是git缺少一些东西。我可以轻松地同步我的项目文件,但同步数据库总是一个巨大的痛苦。

是否有在实时服务器和开发服务器之间同步数据库的“正确”方法?

我可以在版本控制中包含一个数据库转储并每次更新它,但这似乎并不直观。尤其是在某些情况下,WordPress 倾向于将有关实时服务器的信息保存到数据库中。

PS我不是在谈论数据库结构,因为有ORM技术,而是页面的实际内容。

4

3 回答 3

3

你可以试试我的脚本:https ://github.com/jplew/SyncDB

SyncDB 是 bash 部署脚本,旨在消除同步 Wordpress 站点的本地和远程版本的乏味。它允许在本地环境(例如 MAMP)中工作的开发人员使用单个终端命令快速将更改“推送”或“拉取”到他们的生产服务器或从他们的生产服务器中“拉取”更改。

我不断地在 live 和 dev 之间来回迁移内容,因此我将过程简化为一个 shell 命令:

./syncdb
于 2013-09-03T11:02:31.690 回答
2

您可以在 MySQL 中进行主从复制或主从复制。

主从复制

  • 生产服务器是主服务器,开发服务器是从服务器。主服务器将新数据传递给从服务器。但是,如果您在从服务器上进行更改,它将不会更新到生产服务器。

主主复制

  • 将两台服务器都设置为主服务器,如果生产服务器发生变化,开发服务器也会发生变化,反之亦然。

进一步阅读

于 2013-09-01T12:39:33.377 回答
0

由于 WordPress 是一个生产就绪系统,大多数数据都是特定于存储环境的。幸运的是,很少需要迁移数据库(即仅在启动站点时)。

您可以通过以下步骤执行此操作:

  • 导出源环境数据库
  • 将数据库导入目标环境
  • 导出wp_posts
  • 替换任何特定于环境的 URL(即dev.whatever.comwhatever.com
  • 重新导入wp_posts

由于大多数运行时配置都在wp_config.php其中,因此表很少出现问题wp_options。但是,您可以根据需要导出它。

注意:这摘自我关于为多个环境配置 WordPress 的文章。

还有一些插件可以帮助完成这个过程。

于 2013-09-01T12:41:12.773 回答