LaravelでmigrateするDBとパスを変更する

Migrationファイルの保存先の変更と展開先データベースの変更オプション

パスの変更

Laravelのデフォルトでは、Migrationファイルが、

app/database/migrations

に保存されます。

データベースを動的に切り替えるアプリケーションを開発する場合には、migrationファイルの格納先をチャネル化し、データベース毎にmigrationファイルを管理する必要があります。

保存先パスを変更するために新規の保存先を作成します。

app/database/migrations2

新規に作成したmigrationファイルの保存先を

–path

で指定すれば、その階層にmigrationファイルが保存されていきます。

php artisan migrate:make create_posts_table --path=app/database/migrations2 --table=posts --create

migrationファイルの管理をチャネル化することが出来ました。

migrate先DBの変更

migrationファイルを分割して管理することが可能になったので、展開先データベースを指定してmigrateします。そのためには、

–databaseオプション

を利用して、データベースコネクションを指定します。

app/config/database.php

を開いて、新しいコネクション名を作成します。

'mysql' => array(
  'driver'    => 'mysql',
  'host'      => 'localhost',
  'database'  => 'blog',
  'username'  => 'admin',
  'password'  => 'password',
  'charset'   => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix'    => '',
),
		
'mysql2' => array(
  'driver'    => 'mysql',
  'host'      => 'localhost',
  'database'  => 'blog2',
  'username'  => 'admin',
  'password'  => 'password',
  'charset'   => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix'    => '',
),

blog2データベースへ接続するmysql2コネクションを新規に作成したのが上の状態です。このコネクション名を指定してmigrateすれば、blog2データベースにmigrationされます。

php artisan migrate --path=app/database/migrations2 --database=mysql2

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

LaravelでmigrateするDBとパスを変更するの記事にコメントを投稿