skillup

技術ブログ

Database PHP

laravelのmigrationに関して

投稿日:2019年7月14日 更新日:

DBのカラムの保守などをする場合のmigrationに関して。

ポツポツ使っていたのですが、しっかりまとめてなかったのでここでまとめて見ようかと思います。

カラム定義

./database/migrationsの下にyyyy_MM_dd_hhmmss_create_jobs_table.phpが作成されます。

ここに下記の用にカラム定義をします。

実際の実行

このコマンドで実際にテーブルが作られます。

実際にテーブルが作られており、またmigrationsと言うテーブルにmigrationの記録が作られます。

一回実行すると基本的にはもう終了しています。

もしやり直したい場合は

で、戻します。–step=1をつけないと全migration処理がrollbackされます。(この時downと言うメソッドに定義しておかないとうまく動きません。downは通常はupの逆になります。)

もっと原始的な方法としてはmigrationsと言うテーブルで戻したい処理のレコードを物理的に消すと言う方法もあります。こうすると記録が消えますので、migrationsが最初から実行されます。

既存DBからmigrationファイル

ちなみに既存DBからmigrationファイルを作ることもできます。

https://github.com/Xethron/migrations-generator

これだけで一気に既存 DBからのmigrationファイルが作られます。(レガシー系のプロジェクトに良さそうです。)

-Database, PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

MySQL.sockファイルに関して

朝出社してテストサーバーを見るといきなりサーバーが動いていないという事態が発生。 MySQLを起動しようとすると

なるメッセージがでて …

no image

HAVING句について NULL時の動き

HAVING句のNULLがあった時の挙動にたいしてメモリます。 COUNTの処理 対象上の列数を数えるのにCOUNTを使うと思いますが、COUNT(*)とCOUNT(列名)では動きが若干違っており、前 …

no image

Facadeパターンについて(Laravelを題材に)

LaravelのFacadeについて自作する機会があったので、メモ。 デザインパターンの一種かと思います。 Contents1 サンプル2 使い所3 メリット4 デメリット5 参考リンク サンプル h …

no image

SQL 集計関数の利用

先日同様、ある程度複雑な問題のSQLに関して。出典はSQL実践入門。 問題 下記のようなテーブル(テーブル名)で より古い年のデータが存在しない場合 NULL 直近の年のデータより売り上げが伸びた場合 …

no image

CakePHPでのプレフィックスルーティング

cakePHPではルーティングがデフォルトでは/コントローラ名/アクション名となります。 ところが管理画面などはadmin/コントローラー名/アクション名などと変則的なURLにしたいことも多いでしょう …

アーカイブ