【Laravel 7.23.0】ログイン機能を作成する② カラム名を変更するrenameColumn(マイグレーション)

投稿者: | 2020年8月8日
Laravelアイコン

環境
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^)

 

テーブルを作成

定義付テーブルをデータベースに作成

下記のartisanコマンドで一瞬で出来上がります!

 

テーブル作成migrateコマンド(cmd/ターミナル)

 

自動で4つのテーブルが作成されます。

 

これでテーブルは完成しました。

主にusersテーブルしか編集しません。

 

データベース確認

下記を見てもわかるように定義とか一切しなくてもこのように一瞬で作成してくれるのでありがたいです。

 

【usersテーブルの初期状態】

cmd/ターミナル

 

phpMyAdmin

 

この状態からusersテーブルを少しだけ変更してログイン機能を作成していきます。

 

マイグレーションファイルを作成(make:migraton)

usersテーブルのカラムを変更するためのphpマイグレーションファイルを作成します。

 

マイグレーションファイル作成コマンド(cmd/ターミナル)

 

database\migrations

コマンドを実行すると、さくっと自動でファイルを作成してくれます。

 

カラム名を変更(renameColumn)

それでは自動で作成された下記のphpファイルの編集をしていきたいと思います。
2020_08_08_001027_chage_col_name_table.php
ファイルを開きます。


変更するのは下記のfunctionのupとdownの2か所。

変更箇所
①public function up()

②public function down()

 

up

変更前のカラム名と変更後のカラム名を記入します。
$table->renameColumn(‘変更前’, ‘変更後’);

 

down

rollbackするので
$table->renameColumn(‘upの逆);にすればOKです。

 

編集がおわったらmigrateで作成したファイルを読み込ませます。

migrateコマンド(cmd/ターミナル)

 

もし実行してエラーが出たら

composer.jsonを開いて下記がなかったら変更用の追加パッケージをインストールしてください。

 

インストール↓↓Doctrine DBALライブラリー

コマンド(cmd/ターミナル)

 

データベースで確認

usersテーブルのカラム名が変更されたか確認します。

 

コマンド(cmd/ターミナル)

変更前

変更後

nameがlastnameに変更されています!

 

まとめ

実行したことはたったの4つです。

①php artisan migrate 既存ファイルでマイグレーションファイル実行(データベースにテーブル作成)

②php artisan make:migration カラム名を変更するためのファイル作成

③$table->カラム名を変更するための処理

④php artisan migrate マイグレーションファイル実行(データベースのカラム名変更)

【次回】データベースにカラムを追加する(マイグレーション)

以上です。