##マイグレーションとは
「統合する」などの意味。Laravelにおいては、データベースの定義にあたります。
##マイグレーションの手順
artisanコマンドでマイグレーションファイル作成
$ php artisan make:migration ファイル名 --create=テーブル名
任意のファイル名、テーブル名を入力してターミナルでartisanコマンドを実行します。
テーブル名は複数形にします。
プロジェクトのディレクトリ内のdatabase/migrations
ディレクトリに
2019_11_24_224426_ファイル名.php
が自動で作成される。
データベースの接続
migrate
を実行すると、マイグレーションファイルに設定された情報に基づいてデータベースにテーブルが作成されます。
$ php artisan migrate
1.config→database.phpを開く
2.データベース名を変更
'default' => env('DB_CONNECTION', '使用したいデータベース名'), (※データベース名 → mysqlやsqlite等)
// 使用するデータベースのパスや.envについての情報を確認しておく
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
3.cd databaseでディレクトリに移動
4.touch database.sqlite
(database.phpの'connections内にあるdatabase_pathのファイルを作成)
5. 「.env」ファイルのDB_CONNECTION=データベース名を使用するデータベース名に変更
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
DB_CONNECTION=sqliteのように使用するデータベース名に変更。
※sqliteの場合は、その下の5行は不要なので削除(あるとマイグレーションエラーになる。)
6.$ php artisan migrateを実行
PDOException::("SQLSTATE[HY000] [1049] Unknown database 'laravel'")
※データベースの定義後、データベースを置くところを作成せずにmigrateを実行するとエラーになります。
###やり直し
直前のマイグレーションを取り消したいときはrollback
が便利です。
$ php artisan migrate:rollback