在迁移中使用pt-online-schema-change

时间:2014-04-29 08:33:13

标签: php mysql laravel migration percona

我目前正在构建一个在现有数据库上运行的新应用程序 - 该数据库已在生产中。这个新应用程序是在Laravel 4中构建的,并且有一些迁移可以进行所需的模式更改。

要求使用Percona Toolkits pt-online-schema-change来发布架构更改,但是我无法在任何地方找到如何在迁移中使用它 - 只需标准的CLI界面。我需要一些方法将迁移中的架构更改与pt-online-schema-change

联系在一起

我不想放弃编写迁移或使用Laravel架构构建器带来的所有好处。我希望有一种简单的方法,我没有看到在其中使用Percona Toolkit。我曾想过使用exec(),但如果可能,我更愿意避免这种情况。

当"谷歌搜索"在过去的几周里,我无法在迁移过程中找到任何类似于使用Percona Toolkit的东西。当然这是一个已经解决的问题?

如果我的方法存在缺陷,请告诉我! :)

1 个答案:

答案 0 :(得分:3)

您可能会在迁移中执行此操作:

public function up()
{
    exec('pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=actor', $output, $return);

    if ( ! $return) {
        throw \Exception('Error migrating '.__FILE__);
    }
}