2017-04-10 5 views
0

Ich versuche, mehrere Datenbanken für eine Migration zu setzen. In der Datei "config/database.php" dies ist der Code:Migration in mehreren Datenbanken Laravel

'mysql' => [ 
     'driver' => 'mysql', 
     'host' => env('DB_HOST', '127.0.0.1'), 
     'port' => env('DB_PORT', '3306'), 
     'database' => env('DB_DATABASE', 'first_database'), 
     'username' => env('DB_USERNAME', 'root'), 
     'password' => env('DB_PASSWORD', ''), 
     'unix_socket' => env('DB_SOCKET', ''), 
     'charset' => 'utf8mb4', 
     'collation' => 'utf8mb4_unicode_ci', 
     'prefix' => '', 
     'strict' => true, 
     'engine' => null, 
    ], 

    'mysql2' => [ 
     'driver' => 'mysql', 
     'host' => env('DB_SEC_HOST', '127.0.0.1'), 
     'port' => env('DB_SEC_PORT', '3306'), 
     'database' => env('DB_SEC_DATABASE', 'second_database'), 
     'username' => env('DB_SEC_USERNAME', 'root'), 
     'password' => env('DB_SEC_PASSWORD', ''), 
     'unix_socket' => env('DB_SOCKET', ''), 
     'charset' => 'utf8mb4', 
     'collation' => 'utf8mb4_unicode_ci', 
     'prefix' => '', 
     'strict' => true, 
     'engine' => null, 
    ], 

In der Datei "env" Dies ist der Code:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=first_database 
DB_USERNAME=root 
DB_PASSWORD= 

DB_SEC_CONNECTION=mysql2 
DB_SEC_HOST=127.0.0.1 
DB_SEC_PORT=3306 
DB_SEC_DATABASE=second_database 
DB_SEC_USERNAME=root 
DB_SEC_PASSWORD= 

Wenn ich die Migration mit diesem Code ausführen:

Schema::connection('second_database')->create('test', function(Blueprint $table) { 
     $table->increments('id'); 
    }); 

Das Terminal zeigt diese Fehlermeldung:

[InvalidArgumentException] 
Database [second_database] not configured. 

Was mache ich falsch?

Danke!

Antwort

0

Verwenden Sie den Array-Schlüssel in Ihrer Konfiguration nicht den Datenbanknamen. Das ist

Schema::connection('mysql2')->create('test', function(Blueprint $table) { 
    $table->increments('id'); 
});