我想使用 wordpress 建立一个网站,我们可以在本地修改它,然后通过 subversion 提交网站并公开。这意味着安装新插件、更改内容、测试 wordpress 的更新以查看它们是否适用于主题等。
这个想法是为了控制网站上的开发,以防我们需要跟踪开发或回滚,因为插件,主题等中出现意外的错误。
我读过这个法典中的文章,但是我不确定当我们想要在 worpdress 和插件选项(在 mysql 中)中包含内容和更改时,该如何做到这一点。
谢谢
答案1
您链接的 codex 文章将用于在本地安装/更新 Wordpress 主副本。然后,您将对 Wordpress 主站点的更改提交到本地 svn 存储库。
您可以考虑实现一个提交钩子,根据提交消息中的值触发,或者当您提交到标签时触发。然后钩子脚本可以通过 svn 将副本导出到公共主机。这样就可以实时推送,而无需所有额外的 svn 文件/文件夹。
无论您决定使用何种方法进行版本控制,提交钩子都可以触发数据库更新。
一些 svn hook 内容:http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.reposadmin.create.hooks 还有一些关于钩子的 stackoverflow 问题/答案:https://stackoverflow.com/search?q=svn+hook
RB
答案2
要做您想做的事,您需要:
- 弄清楚如何将所需的数据库部分转储到平面文件中(mysqldump 或 mysql-hotcopy 可能会有所帮助)
- 使用脚本自动执行此操作(您也将其放入版本控制中)
- 自动化恢复将脚本转储到数据库中(也进入版本控制)
然后,您就得到了所有信息,可以从数据库中提取数据并将其签入 svn,或者在需要恢复时将数据从 svn 推送回数据库。一定要测试一下!
答案3
我们利用基于 Selenium 的自动化集成测试系统做类似的事情。
我们在服务器上有一个 PHP 脚本,用于监听来自提交后挂钩的远程调用。该脚本执行 SVN 更新以更新测试环境中的所有源(然后 Selenium 运行许多预定义的集成测试 - 但您可能并不关心这一点)。
对于数据库,您可以通过 PHP 调用 mysqldump 将 dev 数据库复制到 live(当然会自动备份之前的活动)。