2017-02-28 6 views
1

テーブルperiodsの列がstart_dateend_dateの場合、start_date < end_dateという制約を追加したいとします。Laravelの移行でテーブルに制約を追加するにはどうすればよいですか?

PostgreSQLのクエリは次のようになります。

ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date"); 

しかし、私はPHPでの移行としてそれをやってみたいです。私はそれがこのようなものになります推測:

Schema::table('periods', function (Blueprint $table) { $table->something(); }); 

を...それでもインテリセンスで、私は「何か()」の代わりに書くために何を推測することができませんでした。

私はLaravelの最新バージョンを使用していないので、あなたのコードが動作するバージョンと古いバージョンで何ができるかを追加するといいでしょう。

答えて

3

Blueprintクラスでは依然として制約がサポートされていないため、以下のような生のSQLを実行できます。

public function up() 
{ 
    DB::statement('ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date")'); 
} 
関連する問題