我有两个sql server数据库。我尝试通过使用迁移将列添加到第二个数据库(sqlsrv2)。我尝试了Schema :: connection,但它始终链接到默认数据库(sqlsrv)。下面提供了我的代码。请指教。谢谢。
在.env文件中
DB_CONNECTION=sqlsrv
DB_HOST=hostname1
DB_PORT=1433
DB_DATABASE=database1
DB_USERNAME=user1
DB_PASSWORD=123
DB_CONNECTION_SECOND=sqlsrv
DB_HOST_SECOND=hostname2
DB_PORT_SECOND=1433
DB_DATABASE_SECOND=database2
DB_USERNAME_SECOND=user2
DB_PASSWORD_SECOND=123
在database.php中
'sqlsrv' => [
'driver' => 'sqlsrv',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
],
'sqlsrv2' => [
'driver' => env('DB_CONNECTION_SECOND'),
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST_SECOND'),
'port' => env('DB_PORT_SECOND'),
'database' => env('DB_DATABASE_SECOND'),
'username' => env('DB_USERNAME_SECOND'),
'password' => env('DB_PASSWORD_SECOND'),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
],
正在迁移文件
public function up()
{
Schema::connection('sqlsrv2')->table('staff', function (Blueprint $table) {
$table->string('system_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('sqlsrv2')->table('staff', function (Blueprint $table) {
$table->dropcolumn('system_id');
});
}
答案 0 :(得分:0)
我知道这可能有点简单,您可能已经尝试过了,但是做了
php artisan optimize
要么
php artisan config:cache
可能在某处向您显示问题,或者只是刷新配置缓存。
这是一个非常简单的命令,我确定您已经尝试过,但是在99%的时间中,我遇到了诸如此类的奇怪问题,我只是运行这些类型的命令并解决了问题。
希望这会有所帮助!祝你好运!
答案 1 :(得分:0)
Dhananjay Kyada。感谢建议。
我曾经尝试过php artisan优化或php artisan config:cache。它不起作用。
仅对我有用: php artisan migration --database = sqlsrv2