部署预配置的数据库

时间:2016-04-01 作者:Sebastian Gärtner

我想用git控制我的WP站点的版本。我面临的一大难题是:如何在数据库中进行版本控制选项/插件设置。

我不想触碰现场的仪表板。只有用户需要登录才能写文章,但作为一名开发人员,我只想登录以检查是否所有内容都在实时机器上工作。有没有办法做到这一点?

我知道Drupal 8有一个内置的配置管理-这是他们的解决方案。我还知道“versionpress”和类似的插件。但是他们还可以控制帖子/页面/用户等的版本。我不需要这个。示例:

Update option \'site_url\' to \'http://example.com\';
Reset update option \'site_url\' to \'http://noexample.com\';```
(第二行是重做此步骤)

我想ruby-on-rails或类似软件中有一些东西。最好将代码/选项/设置和内容/媒体/用户生成的内容分开。

4 个回复
SO网友:Borek Bernard

WP-CFM 可能是最接近你想要的。实际上,它的灵感来自Drupal的功能模块。

从插件页面:

WP-CFM允许您将数据库配置复制到文件系统或从文件系统复制数据库配置。轻松部署配置更改,无需复制整个数据库。

然而,作为一个在过去几年中大部分时间都在为WordPress开发版本控制解决方案的人(我是VersionPress的联合创建者),我可以说,仅对网站的部分进行版本控制是很棘手的。例如,插件可能会将其部分配置存储在wp_options, 一些存储在磁盘上(例如,在一些PHP文件中),一些存储在Posteta或其他文件中。完全版本控制很难(这就是VersionPress需要时间的原因),但它是唯一100%可靠的方法。

如果你确定你很擅长wp_options (以及WP-CFM提供的一些其他跟踪实体;请参阅链接的插件页面)然后我同意使用更简单的工具更好。

SO网友:Sumeet Shroff

不确定你需要什么,但。。。。

也许您可以使用活动日志跟踪活动。。。https://wordpress.org/plugins/aryo-activity-log/

“通过代码插入选项/页面/设置”的大多数活动都发生在数据库中。。您可以使用cron对数据库进行快照,然后比较差异。。。

SO网友:Jessica Guerard

插件更新失败?错误删除帖子?只要解开它。还有,WordPress的无痛登台(终于!),出色的备份和;团队工作流,全部由Git支持。

为您开发下一代产品,您可以尽早访问并支持我们:http://versionpress.net/

这似乎可以用于版本控制,但似乎是“早期访问程序”:http://docs.versionpress.net/en/getting-started/about-eap

其他插件:

https://wordpress.org/plugins/revisr/

https://www.presslabs.com/gitium/ - 测试版

SO网友:kovshenin

抛开WordPress不谈,如果您正在寻找一种方法来查看MySQL数据库在特定时间段内发生了什么变化,那么binary logs 是您最可靠的赌注。这些Beals将记录以任何方式更改数据库的每条语句,允许您在另一个数据库上重播它们(或其中的一个子集)。

它们非常适合用于审核、复制和时间点恢复。不太适合将更改“合并”到另一个数据库,而另一个数据库也可能已被更改,这主要是因为AUTO_INCREMENT 几乎总是会导致冲突的列。这可能需要大量的体力劳动,但我不会在一百万年后去那里。

关于WordPress,一个巧妙的技巧是让您的选项处于版本控制之下。。。版本控制:

add_filter( \'pre_option_posts_per_page\', function( $per_page ) {
    return 50;
});
这样,无论您的数据库是什么posts_per_page 选项始终为50。您可以阅读有关pre\\u option\\u*过滤器的更多信息here.

正如许多人已经提到的,有一些特定于WordPress的插件和工具试图为WordPress的内容和设置提供某种类型的版本控制。另一个值得一提的是价格昂贵RAMP plugin 受大众喜爱。

正如Borek所提到的,在这样一个工具中构建可靠性是非常困难的,因为第三方插件可以做各种各样的疯狂的事情。

相关推荐

当站点的根目录是Git存储库时,启用自动次要核心更新

我有一个使用Git进行版本控制的客户端站点。单个存储库位于Wordpress根级别,但它被设置为忽略除主题和插件文件以外的所有内容。我对最佳实践进行了一些研究,并在子模块上找到了一些内容,我可能会在下次尝试,但目前,我想知道是否有办法实现以下两个目标:保持Git存储库在WordPress根目录下的结构不变,但有效地只使用它来控制单个存储库中的主题和插件的版本</启用自动WordPress核心更新并绕过此错误:This site appears to be under version control.