マイグレーション作成
今回やること
マイグレーション機能(データベースのバージョン管理)を使用して、phpMyAdminに作ったデータベース(mommy_book)にテーブルを作成する!
ポイント
-
migrationファイルの内容の中には、テーブルを作成する処理が含まれている
- up(): テーブル作成(バージョンアップ処理)
- down(): テーブル削除(ロールバック処理)
-
Laravelにはプロジェクト作成段階でユーザ認証が組み込まれてるようになっている
- ユーザ用のテーブルとパスワード再確認用テーブルを作成する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が指定された場合は、デフォルト値が入る
まとめ
以下の手順を繰り返す!!
1. migrationファイルを作成
2. テーブル定義書をもとにmigrationファイルを編集
3. migrationを実行
4. phpMyAdminのデータベースにテーブルが作成されているかを確認
Author And Source
この問題について(マイグレーション作成), 我々は、より多くの情報をここで見つけました https://qiita.com/Chiho99/items/84b4a11bea9351901e4d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .