我和Laravel一起玩过并喜欢数据库迁移系统。
我还使用wordpress工作很多,并想知道是否有类似的方法来描述可以添加到git的文本文件中的数据库更改,并将这些更改推送到临时或生产环境中的db的远程版本。
也许本地机器可以连接到远程mysql数据库并自动进行更改。
必须有一些东西,但我无法通过谷歌或其他途径找到任何东西。
我发现的最近的是http://dbv.vizuina.com/,但我不确定它是完全相同的。
任何人都有任何工具或建议吗?
答案 0 :(得分:0)
Liquibase的变化集。不解决回滚历史问题,给合并带来很大麻烦 - 但记录所有数据和结构变化
答案 1 :(得分:0)
我建议你使用lib https://phinx.org/。我们在公司使用这个库,我们非常喜欢它。 您可以使用composer安装此库并使用php文件进行配置(这是一个选项 - 很好地包含不同的配置文件 - 例如来自wordpress)。这样做的最大优点是您可以在php代码中编写迁移。您只需定义方法(进行迁移)和向下(向后滚动 - 您可以在选定的阶段执行此操作)。请看下面的示例:
<?php
use Phinx\Migration\AbstractMigration;
class AddColumnsToVisitorTable extends AbstractMigration
{
public function up()
{
$table = $this->table('visitor');
$table->addColumn('send_at', 'datetime');
$table->addColumn('visitor_email', 'string');
$table->addColumn('visitor_source', 'string');
$table->update();
}
public function down()
{
$table = $this->table('visitor');
$table->removeColumn('send_at');
$table->removeColumn('visitor_email');
$table->removeColumn('visitor_source');
$table->update();
}
}
如果将更改从develop分支合并到master,则还可以合并迁移。合并后,我们部署了在live env上运行迁移的脚本。因此,您确信使用您的代码更改了数据库。