问题描述
我问这个问题是因为我在互联网上搜索,但找不到正确的解决方案。实际上,我想要一个解决方案,其中多个开发人员可以在单个 WordPress 项目上工作,而不会造成任何混乱的对方工作,但是我们知道,在 wordpress 中,每一件事情都维护在数据库中,因为哪个插件是活跃的,哪个不是。
如果开发人员在他们本地的项目中安装插件,而不是彼此沟通,每个人都应该安装那个特定的插件或插件等,如果每个开发人员推/拨代码,一些错误的沟通可能会破坏他人的网站。
我们是否应该共享数据库,以共享插件/主题设置,以便开发人员之间不会有任何冲突或冲突。
谢谢
最佳解决方案
Git 插件:
-
对于已经在 packagist 或 wpackagist 上打包的插件,请使用 Composer 。将它们添加到
composer.json
。 -
使用 TGM Plugin Activation 作为其他插件。
然后,使用 Git 来管理 composer.json
和 TGM 插件的更改。
最困难的部分是同步数据库:
当然,我们应该共享数据库。重新配置插件设置/选项不是一个好主意。
有 many plugins,免费和高级,这可以帮助。
如果要手动尝试某些操作,请将 wp-cli 与 @Wyck 的 the answer 结合使用。
次佳解决方案
我看到的最好的解决方案是使用 Bedrock(https://roots.io/bedrock/) 。
这个问题的其他答案 (作曲家,以及管理你的插件的东西) 是很好的答案; 但是 Bedrock 提供了一种系统化的,支持的,有文档记录的 continually-improved 方法,这比自己更喜欢。
另外,请记住,您可以有多个 git repo – 一个用于您的主题,一个用于您开发的每个自定义插件,然后一个用于 Bedrock /Wordpress 安装本身的 “主” 。
第三种解决方案
我的团队面临着类似的问题。我们使用 git 来版本我们自己的自定义代码,如插件和我们写的主题。我们使用 Composer 来管理依赖关系,比如我们没有写的插件。我们检查 composer.json 和 composer.lock 文件到 git,以保持每个人都同步。每个开发人员预计会拉动 git 主站,并经常在他们的游戏机上运行 composer update
,以便每个人都保持最新状态。
在数据库中,开发人员主要关心配置,我们经常使用 WP-CLI 来保持配置的同步。例如,我们有一个 shell 脚本运行一个 WP-CLI 命令来启用或禁用基于 per-host 的插件; 某些插件仅在我们的内容登台主机上使用,例如,脚本可以在任何主机上运行,只能在该主机上启用适当的设置。如果需要的话,一些脚本耗时太长的配置只是手动记录下来的。
我们还有一个 Perl 脚本,可以将数据库从我们的内容分段服务器完全克隆到 QA 或者开发主机上。如果他们想要所有当前的内容,开发人员可以定期使用这些内容,虽然通常不如代码和配置那么重要。脚本执行这些任务:
-
mySQL 转储内容分段服务器的数据库,更改表名,加载到目标服务器的数据库中
-
使用 wp-cli 更改对数据库中临时服务器的引用,以引用目标服务器
-
将目标服务器上的 uploads 目录与内容登台服务器的上传同步
有一些有希望的解决方案,用于实际版本化数据库的快速发展。 VersionPress 和 Mergebot 是我知道的两个,也可能有其他的。
我在我的博客上写了更多的 technical details of how we set up WordPress to work with git and Composer 。有必要在自己的目录中运行 WordPress 核心,以便我们希望在 git 和 WordPress 核心中保持代码之间的干净分离。我们将 WordPress 本身视为依赖,并使用 Composer 进行管理。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。