M W.
M W.

Reputation: 25

How to work with many database schemas in a laravel migration file?

I'm trying to separate my tables into different schemas while writing migration files with Laravel.

I was wondering what's the best approach to do it. Currently, the table creation goes like:

 Schema::create('schema_name.table_name', function (Blueprint $table) {
        $table->increments('id');
        (...)
    });

Should I try to use a different connection, another option or it's ok like this?

Upvotes: 1

Views: 1813

Answers (1)

Ajay Kumar
Ajay Kumar

Reputation: 1352

try this

first in config/database.php add another connection

'connections' => [
    'mysql' => [...],

    'mysql1' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE_NAME', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

      ...
]

Then in migration

Schema::connection('mysql1')->create('table_name', function (Blueprint $table) {
    $table->increments('id');
    (...)
});

Upvotes: 6

Related Questions