環境
php 7.4.1
Mysql Ver 15.1 Distrib 10.4.11-MariaDB
Laravel 7.23.0
composer 1.10.9
データベースの設定と作成がまだの人はこちらの記事を参考にデータベースを作成してからこちらの記事をご覧になってください!
【デーベースの設定と作成】
dailyrecords.blog/archives/756
それではいってみましょう(^O^)
Menu
テーブルを作成
定義付テーブルをデータベースに作成
下記のartisanコマンドで一瞬で出来上がります!
テーブル作成migrateコマンド(cmd/ターミナル)
1 | php artisan migrate |
自動で4つのテーブルが作成されます。
これでテーブルは完成しました。
主にusersテーブルしか編集しません。
データベース確認
下記を見てもわかるように定義とか一切しなくてもこのように一瞬で作成してくれるのでありがたいです。
【usersテーブルの初期状態】
cmd/ターミナル
phpMyAdmin
この状態からusersテーブルを少しだけ変更してログイン機能を作成していきます。
マイグレーションファイルを作成(make:migraton)
usersテーブルのカラムを変更するためのphpマイグレーションファイルを作成します。
マイグレーションファイル作成コマンド(cmd/ターミナル)
1 | php artisan make:migration chage_col_name_table --table=users |
database\migrations
コマンドを実行すると、さくっと自動でファイルを作成してくれます。
カラム名を変更(renameColumn)
それでは自動で作成された下記のphpファイルの編集をしていきたいと思います。
2020_08_08_001027_chage_col_name_table.php
ファイルを開きます。
変更するのは下記のfunctionのupとdownの2か所。
②public function down()
up
変更前のカラム名と変更後のカラム名を記入します。
$table->renameColumn(‘変更前’, ‘変更後’);
down
rollbackするので
$table->renameColumn(‘upの逆);にすればOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public function up() { Schema::table('users', function (Blueprint $table) { $table->renameColumn('name', 'lastname'); //①の変更 }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { $table->renameColumn('lastname', 'name'); //②の変更 }); } |
編集がおわったらmigrateで作成したファイルを読み込ませます。
migrateコマンド(cmd/ターミナル)
1 | php artisan migrate |
もし実行してエラーが出たら
composer.jsonを開いて下記がなかったら変更用の追加パッケージをインストールしてください。
インストール↓↓Doctrine DBALライブラリー
コマンド(cmd/ターミナル)
1 | composer require doctrine/dbal |
データベースで確認
usersテーブルのカラム名が変更されたか確認します。
コマンド(cmd/ターミナル)
1 | desc users; |
【変更前】
【変更後】
nameがlastnameに変更されています!
まとめ
実行したことはたったの4つです。
①php artisan migrate 既存ファイルでマイグレーションファイル実行(データベースにテーブル作成)
②php artisan make:migration カラム名を変更するためのファイル作成
③$table->カラム名を変更するための処理
④php artisan migrate マイグレーションファイル実行(データベースのカラム名変更)
以上です。