Php Laravel artisan迁移多个数据库

Php Laravel artisan迁移多个数据库,php,mysql,laravel,migration,laravel-artisan,Php,Mysql,Laravel,Migration,Laravel Artisan,我正在使用Laravels迁移功能进行一些测试 我的配置中有两个数据库,mysql和appDbmysql是默认的。 我在migrations目录中创建了两个目录, appDb和coreDb。我在appDb目录中为appDb创建了一个迁移,在coreDb目录中为mysql数据库创建了一个迁移 现在,要运行coreDb迁移,我只需使用以下命令 php artisan migrate --path database/migrations/coreDb 输出: Migrated: 2017_01_25

我正在使用Laravels迁移功能进行一些测试

我的配置中有两个数据库,
mysql
appDb
<代码>mysql是默认的。 我在migrations目录中创建了两个目录,
appDb
coreDb
。我在
appDb
目录中为
appDb
创建了一个迁移,在
coreDb
目录中为
mysql
数据库创建了一个迁移

现在,要运行
coreDb
迁移,我只需使用以下命令

php artisan migrate --path database/migrations/coreDb
输出:

Migrated: 2017_01_25_195008_initial_core_database
它工作正常,我在迁移过程中在
coreDb
下创建的表现在位于
mysql
配置中指定的数据库中

php artisan migrate --database appDb --path database/migrations/appDb
现在,我想对
appDb
目录中指定的数据库进行更改,但仅对
appDb
配置中指定的数据库进行更改

php artisan migrate --database appDb --path database/migrations/appDb
它运行良好:

Migration table created successfully.
Migrated: 2017_01_25_194957_initial_app_database
当我打开在
appDb
config中指定的数据库时,它会显示迁移表,并显示它运行了
2017\u 01\u 25\u 194957\u initial\u app\u数据库
迁移。但是我在
2017_01_25_194957_initial_app_数据库
迁移中创建的表已在另一个数据库中结束,该数据库在其迁移表中没有此迁移的记录

它似乎使用了
--database
之后指定的数据库来存储有关迁移的信息,而不是实际执行迁移

还有其他人有过这样的经历吗? 如何调试这个的想法

我也试着这样做:

Schema::connection($this->getConnection())->dropIfExists('testAppDb');

但是迁移类上的
$this->getConnection()
返回
NULL
,即使我有一个由
--database
参数指定的数据库

您需要在
Schema::connection()
中命名要连接到的实际数据库,以便对特定数据库执行迁移:

例如:

Schema::connection('testAppDb')->dropIfExists('testAppDb');

您需要在
Schema::connection()
中命名要连接到的实际数据库,以便对特定数据库执行迁移:

例如:

Schema::connection('testAppDb')->dropIfExists('testAppDb');