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