我即将使用 WordPress 作为 CMS 并进行大量自定义,但我的问题是,我应该如何将开发与生产同步?
假设不使用 WordPress,一个典型的开发周期是在本地开发页面,并创建数据库脚本。然后,当一切准备就绪时,它就会发布到网站上。然后再一次,更多的数据库和代码更改,然后只有更改被更新/应用,等等。
现在,使用 WordPress,您可以获得所有出色的功能(一个示例是博客、评论、几乎准备就绪的 CMS 等)。但是部署很痛苦!理想情况下,我宁愿保持上面描述的典型开发周期。因此,我将在本地(来自 wordpress.org)实施 WordPress,然后将更改推送到我的生产服务器。
所以,假设我在 WordPress 本地创建一个新页面(我永远不会在服务器上创建页面,全部在本地,我会找到一种方法为服务器禁用 wp-admin),创建了许多文件。到目前为止,这还不是问题。但是,如果我想向新创建的页面添加内容,则该内容将保存到我的本地数据库中。即使该内容是数据库更改,它也被认为(从我的角度来看)应该推送到服务器而不是通过实时服务器添加该内容的新更改(因为该内容被认为是静态的,它不是博客发布或评论,它是一个静态页面)。
现在,新页面内容已保存到数据库中,因此,数据库将在我的本地计算机上完成更改,我应该将这些更改与我将通过 FTP 传输到服务器的文件一起推送到服务器。
我的问题是:
这种方法正确吗?如果不是,你有什么建议
查找数据库差异的最佳方法是什么?使用什么工具?MySQL Workbench 是否提供类似的功能?我打算使用该工具来查找差异,然后为数据库生成更新脚本。这个问题的原因是我通常自己进行更改,并且我知道如何跟踪它们,但是现在,这些数据库更改是由 WordPress 生成的,我需要对它们进行逆向工程以找出进行了哪些更改。
假设我已经完成了第 2 步,那么该脚本中是否有任何内容需要修改?比如服务器名称?例如,WordPress 是否对服务器名称进行硬编码?
因此,总结一下并为您提供有关我的开发环境的更多信息,我使用 XAMPP 在 Windows 7 上进行开发,并设置了 PHP 和 MySQL。我还使用 Mercurial 进行源代码控制。如上所述,我将使用 WordPress 作为解决方案的一部分,并打算使用它来帮助我创建 CMS 解决方案。我将在本地使用它来生成页面,并在在线禁用该功能(仅针对博客文章和类似条目保持在线)。我这样做是为了保持同步。如果我在本地创建一个页面,一些数据会保存到数据库中。现在,我如何同步/上传?
谢谢。