Php Laravel artisan迁移多个数据库
我正在使用Laravels迁移功能进行一些测试 我的配置中有两个数据库,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
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');