15
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel マイグレーションファイル作成

Last updated at Posted at 2019-11-27

##マイグレーションとは
「統合する」などの意味。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

参考

Laravel データベース:マイグレーション

15
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?