Схема подключения не может ссылаться на базу данных не по умолчанию - PullRequest
0 голосов
/ 21 июня 2019

У меня есть две базы данных сервера sql. Я пытаюсь добавить столбец во вторую базу данных (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');
        });
    }

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

Дхананджай Кьяда. спасибо за предложение.

Я пробовал php artisan optimize или php artisan config: cache. Это не может работать.

Только эта работа для меня: php artisan migrate --database = sqlsrv2

0 голосов
/ 21 июня 2019

Я знаю, что это может быть немного просто, и вы, вероятно, уже пробовали это, но делаете

php artisan optimize или php artisan config:cache

Может либо показать вам проблему где-то, либо просто обновитькеш конфигурации.

Это очень простая команда, я уверен, что вы пробовали, но в 99% случаев у меня возникают странные проблемы, подобные этой, я просто запускаю команды такого типа, и проблемы решаются.

Надеюсь, это поможет!удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...