Verwenden Sie eine Laravel-Migrationstabelle pro Datenbank
Ich arbeite in einem Projekt, das mehrere Datenbanken verwendet. Anscheinend verwendet Laravel nur die Migrations-Tabelle in der Datenbank, die als Standard festgelegt ist. Ich möchte eine Migrations-Tabelle pro Datenbank, die die Migrationen protokolliert, die an dieser bestimmten Datenbank durchgeführt wurden. Ist das möglich
Ich habe die Datenbanken in der Konfiguration folgendermaßen definiert:
'connections' => [
'db1' => array(
'driver' => 'mysql',
'host' => 'db1.host',
'database' => 'db1',
'username' => 'username',
'password' => 'password',
),
'db2' => [
'driver' => 'mysql',
'host' => 'db2.host',
'database' => 'db2',
'username' => 'username',
'password' => 'password',
]
],
Ich habe auch die erste Datenbank (db1) zur Standarddatenbank gemacht
'default' => 'db1'
Ich installiere die Migrations-Tabelle auf beiden Datenbanken
artisan migrate:install --database=db1
artisan migrate:install --database=db2
Nachdem ich fortfahre, um ein paar datenbankspezifische Migrationen zu erstellen
Tabelle test1 in Datenbank db1 erstellen:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTest1Table extends Migration
{
public function up()
{
Schema::connection('db1')->create('test1', function(Blueprint $table)
{
$table->increments('id')->unsigned();
});
}
public function down()
{
Schema::connection('db1')->drop('test1');
}
}
Tabelle test2 in Datenbank db2 erstellen:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTest2Table extends Migration
{
public function up()
{
Schema::connection('db2')->create('test2', function(Blueprint $table)
{
$table->increments('id')->unsigned();
});
}
public function down()
{
Schema::connection('db2')->drop('test2');
}
}
Ich führe jetzt die Migrationen aus
artisan migrate
Erwartetes Ergebni db1.migrations+-----------------------------+-------+
| migration | batch |
+-----------------------------+-------+
| create_test1_table_in_db1 | 1 |
+-----------------------------+-------+
db2.migrations+-----------------------------+-------+
| migration | batch |
+-----------------------------+-------+
| create_test2_table_in_db2 | 1 |
+-----------------------------+-------+
Tatsächliches Ergebnis db1.migrations+-----------------------------+-------+
| migration | batch |
+-----------------------------+-------+
| create_test1_table_in_db1 | 1 |
| create_test2_table_in_db2 | 1 |
+-----------------------------+-------+
db2.migrations+-----------------------------+-------+
| migration | batch |
+-----------------------------+-------+
Empty set