カラムの追加
ソフトウェア開発を行っていると、元の仕様からの変更があり、データベースのテーブルの内容を変更しないといけないことがあります。
その際に Lraravel の開発では、それを行う方法の一つとして、
- 既にあるテーブルの migration ファイルにカラムを追加
- ロールバックを行う
php artisan migrate
のようにやり直す方法があります。
しかしその方法だと、それまでのテーブルの各行のデータが消えてしまします。
別の方法として、テーブルの元のデータを消さずに、カラムの追加を行うことができます。
これから、posts
というテーブルがあり、comment
カラムを追加したい場合の例と共に説明していきます。
migration ファイルの作成
まず新しい migration ファイルを作成します。
--table
オプションを用いて、更新するテーブル名を指定します。
php artisan make:migration add_comment_to_posts_table --table=posts
migration ファイルの編集
次に作成した migration ファイルに、追加するカラムの情報を記入していきます。
public function up()
{
Schema::table('posts', function (Blueprint $table) {
+ $table->string('comment')->nullable();
});
}
public function down()
{
Schema::table('posts', function (Blueprint $table) {
+ $table->dropColumn('comment');
});
}
migrate
最後にmigrate
を行い、カラムの変更を反映させます。
php artisan migrate
コマンドを実行すると、追加したカラムが含まれた状態のテーブルになっています。
もちろん元のデータは消えていません。