min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Laravelでデータベースのマイグレーション(要はCREATE.sqlをLaravelにやらせちゃえって機能)

1,000万円を超えたbitcoinを少しだけどもらえるURL

https://bitflyer.com/invitation?id=l50e5ljw&lang=ja-JP

ハピタスからポイントもらえるURL

その買うを、もっとハッピーに。|ハピタス

 

DBマイグレーション

言葉の意味はイマイチ分からんのだが要は(いつもなら)SQLで CREATE.sqlってテキストファイル作って例えば

CREATE TABLE NonAggTbl (
 id VARCHAR(32) NOT NULL,
 data_type CHAR(1) NOT NULL,
 data_1 INTEGER,
 data_2 INTEGER,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

とかやるのダルいし、次にDB作るときにそのテキストファイルを無くしちゃうと全く同じ環境(DB)を作れなくて困ったりするので、DB作成それ自体をLaravelにやらせちゃえってのがマイグレーション機能というものらしい。

年表アプリを作ってて、歴史上のできごとをnenpyo.csvファイルに書いてるんだけど、いろいろ限界なのでそろそろこれをDB(nenpyoテーブル)に移行して、Laravelアプリから触われるようにしたいってのが今回の趣旨。マイグレーションファイルを作る。

$ php artisan make:migration create_nenpyo_table

これで 日付_create_nenpyo_table.php というファイルができるので、それを編集していく。

$ vim database/migrations/日付_create_nenpyo_table.php

$tableオブジェクトの ->timestamp()メソッドにより、DBテーブルの中にはおなじみのcreated_at列とupdated_at列が作られる

artisan がマイグレートを実行していくと…

.envで設定した myLaravel01データベースの中に、新たにテーブルnenpyoができた。

$ vim .env

mysql> use myLaravel01;

mysql> show tables;

mysql> desc nenpyo;

なるほど。こりゃ便利だわ。