今回やること
マイグレーション機能(データベースのバージョン管理)を使用して、phpMyAdminに作ったデータベース(mommy_book)にテーブルを作成する!
##ポイント
-
migrationファイルの内容の中には、テーブルを作成する処理が含まれている
- up(): テーブル作成(バージョンアップ処理)
- down(): テーブル削除(ロールバック処理)
-
Laravelにはプロジェクト作成段階でユーザ認証が組み込まれてるようになっている
-
ユーザ用のテーブルとパスワード再確認用テーブルを作成するmigrationファイルがデフォルトでdatabase/migrationの直下に保存されている
-
ユーザ用のテーブルとパスワード再確認用テーブルを作成するmigrationファイルがデフォルトでdatabase/migrationの直下に保存されている
今回のMommy_bookアプリでは、デフォルトのユーザ用migrationファイル(Usersテーブル用)に加えて、Babiesテーブル、Vaccinesテーブル、Baby_checkupsテーブル、Baby_teethテーブル、Matanity_checkupsテーブル、Albumsテーブルを作るため6つのmigrationファイルを作成する。
##流れ
- migrationファイルを作成
- テーブル定義書をもとにmigrationファイルを編集
- migrationを実行
- phpMyAdminのデータベースにテーブルが作成されているかを確認
ここでは、**①デフォルトでテーブルを作る場合(Usersテーブル)と②自分でmigrationファイルを作る場合(ex. Babiesテーブル)**の作成を説明します
##①デフォルトでテーブルを作る場合(Usersテーブル)
1.migrationファイルは既にあるので、database/migrationの直下のcreate_users_table.phpを開く
[デフォルトではup()は以下の通り、down()はデフォルトのままなので省略]
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
3.migrationを実行 (コマンドで)
php artisan migrate
☆データベースにテーブルが作成できているので成功☆
##②自分でmigrationファイルを作る場合(ex. Babiesテーブル)
- migrationファイルを作成
コマンドで、以下の通り(-createオプション:テーブル名は複数形で)
php artisan make:migration create_babies_table --create=babies
database/migrationで作成したcreate_babies_table.phpを開く
[デフォルトではup()は以下の通り、down()はデフォルトのままなので省略]
public function up()
{
Schema::create('tweets', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
php artisan migrate
☆データベースにテーブルが作成できているので成功☆
##カラム設定で出てきたもの
ベースとなる書き方
型がintegerのときは、引数を取ることできないので注意!!!!
Schema::create('テーブル名', function (Blueprint $table) {
$table->カラムの型('カラム名', 引数)
}
nullのとき⇩
$table->カラムの型('カラム名', 引数)->nullable();
メールアドレスなど値の重複を防ぎたいとき⇩
$table->カラムの型('カラム名', 引数)->unique();
外部キー⇩
$table->foreign('外部キー名')->references('外部キーに対応する主キー名')->on('選択した主キーのテーブル名');
}
timestamps()
有効(全体)桁数指定で、NULL値可能なcreated_atとupdated_atカラムを追加する
NULLが指定された場合は、デフォルト値が入る
まとめ
以下の手順を繰り返す!!
- migrationファイルを作成
- テーブル定義書をもとにmigrationファイルを編集
- migrationを実行
- phpMyAdminのデータベースにテーブルが作成されているかを確認