タイトル: テーブルの作成と定義の変更
Laravelのデータベースマイグレーションという機能を使用すればphpファイル上でテーブル定義をすることが出来ます。
マイグレーションファイルの作成
Laravelプロジェクトのルートディレクトリで以下のコマンドを実行すると、マイグレーションファイルを作成することが出来ます。
php artisan make:migration ファイル名 --create=テーブル名 |
以下、実行例です。
php artisan make:migration create_tasks_table --create=tasks |
マイグレーションファイルは「database/migrations」に格納されます。
テーブルの作成
先ほど作成したマイグレーションファイルの中身を見てみましょう。
public function up() { Schema::create('tasks', function (Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } |
「database\migrations」配下にファイルが新規作成されたことを確認できます。
ファイルの中身を見てみましょう。
php artisan migrate |
テーブルの作成が完了します。
テーブル定義の変更
tasksテーブルにカラムの追加、変更をしてみましょう。
php artisan make:migration update_tasks_table --table=tasks |
以下の例ではstring型のnameというカラムを追加しています。
更にidのデータ型を変更します
public function up() $table->bigIncrements('id')->change(); |
upメソッドには定義の追加/変更処理を、downには削除処理を記述します。
ファイルを書き換えただけではテーブルの構造は変化しません。
ファイルを保存して以下のコマンドを実行しましょう。
php artisan migrate |
以下のエラーが発生した場合はこちらを参照。
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' |
カラム定義方法の一覧
※随時更新予定
定義できるカラムの型の一覧等はこちらを参照。
■桁数の指定
桁数指定できるカラムは以下の様に定義する。(以下の例はvarchar100桁)
$table->string('name', 100); |
カラム定義変更方法の一覧
※随時更新予定
■桁数の変更
$table->string('name', 100)->change(); |
■カラム名の変更
$table->renameColumn('from', 'to'); |