laravel 具有多个迁移表的多个数据库

Posted

技术标签:

【中文标题】laravel 具有多个迁移表的多个数据库【英文标题】:laravel multiple databases with multiple migration tables 【发布时间】:2017-07-19 03:08:06 【问题描述】:

我正在尝试在 laravel 5 中设置一个多数据库应用程序。我有一个数据库 A 和第二个数据库 B。在数据库 A 中有我的主要模型。现在我尝试编写一个迁移文件,在数据库 B 中创建一个新表。这很有效,因为我可以在架构构建器中设置与数据库 B 的连接,如下所示:

Schema::connection('foo')->create('users', function (Blueprint $table) 
    $table->increments('id'); 
);

但这里的问题是,迁移表仍在数据库 A 中。我想在数据库 A 中为数据库 A 中的所有表创建一个迁移表,在数据库 B 中为所有数据库 B 中的表。

我正在寻找这样的东西:

Schema::connection('foo')->migrations_table_connection('foo')->create('users', function (Blueprint $table) 
    $table->increments('id'); 
);

有没有办法做到这一点? 谢了

【问题讨论】:

【参考方案1】:

我在Use one Laravel migrations table per database 的帮助下找到了答案,并在此处发布了答案以供其他人使用。

为了分离迁移,您需要运行带有数据库选项的迁移命令,如下所示:

php artisan migrate --database="nameOfConnection"

【讨论】:

如果您有多个数据库作为辅助数据库,例如:在这种情况下,您有一个带有财政年度表的主数据库,并且对于每个财政年度记录,您都有一个单独的数据库......在这种情况下,您将如何在所有财政年度表中运行迁移?

以上是关于laravel 具有多个迁移表的多个数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何指定Laravel用于迁移表的数据库连接?

如何在 Laravel 中的多个数据库上运行迁移?

更快的 Laravel 迁移,用于测试具有大量表的项目

Laravel artisan 迁移多个数据库

如何在 Laravel 迁移中使用多个数据库设置外键约束

如何在 LARAVEL_7 中通过迁移发送多个复选框