Laravelでmigrationを作る。
最近、もろもろの諸事情で全くプログラミングを出来ていないので、復習も兼ねてブログに残します。。
初歩に立ち返り、マイグレーションの作成からやっていきます。
マイグレーション?
マイグレーションというのはデータベースのバージョンをコントロールするためのもので、チーム内でのDBの更新を簡単に共有できるようにしてくれるやつ。
(※上記は個人的な見解です。)
作ってみよう。
LaravelではArtisanコマンド
を使います。
php artisan make:migration create_posting_table
と打ちますと、database/migrations
にマイグレーションファイルが作られているはずです。
しかし最初は、
class CreatePostingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
こんな骨組みだけが書いてあるだけで、中身がないですよね。
今回、僕は掲示板の記事投稿用のテーブルが作りたかったので、内容をこんな感じにしますー。
class CreatePostingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posting', function (Blueprint $table) {
//オートインクリメントID
$table->increments('id');
//親記事の場合は0、子記事の場合は親記事のidを持つ
$table->string('target_id', 10)->default(0);
//投稿者名
$table->string('name', 10);
//投稿文章
$table->text('comment');
//メールアドレス
$table->string('mail_address', 256);
//パスワード
$table->string('password', 10);
//作成時のタイムスタンプ
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//テーブル削除用
Schema::dropIfExists('posting');
}
}
ってな具合です。
引数に入ってるのは、カラムタイプとそのサイズになります。
たとえば、
$table->string('target_id', 10)->default(0)
は、target_id
という名前のstring型のカラムで、サイズは10
。
そしてデフォルト値が0
で作成しています。
これで投稿記事用のマイグレーションの準備はOK。
マイグレーションを実行するには、
php artisan migrate
と打つだけ!簡単!!
さて、無事にテーブルが作成されましたかね??
ちなみに、
php artisan migrate:rollback
と打つだけで、ロールバックもできます。
めっちゃ簡単・・・。
ついでに画像や動画ファイル用のテーブル作成も作っちゃおう!
class CreateUploadFileTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('upload_file', function (Blueprint $table) {
$table->increments('id');
$table->string('target_id', 10);
$table->binary('file');
$table->string('mime', 20);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('upload_file');
}
}
これでバイナリファイル用のテーブルも完成。
とりあえず、今回はここまで。
ちょっとやってないだけなのにブランクがすごい。笑
Laravelが遠い昔のことのように新鮮に感じられます( ̄ー ̄ )
今月は、コツコツ復習ブログを上げていきますー。