将mysql数据库更改从本地更改为临时/生产

时间:2016-05-26 16:38:44

标签: mysql git database-migration

我和Laravel一起玩过并喜欢数据库迁移系统。

我还使用wordpress工作很多,并想知道是否有类似的方法来描述可以添加到git的文本文件中的数据库更改,并将这些更改推送到临时或生产环境中的db的远程版本。

也许本地机器可以连接到远程mysql数据库并自动进行更改。

必须有一些东西,但我无法通过谷歌或其他途径找到任何东西。

我发现的最近的是http://dbv.vizuina.com/,但我不确定它是完全相同的。

任何人都有任何工具或建议吗?

2 个答案:

答案 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上运行迁移的脚本。因此,您确信使用您的代码更改了数据库。