2017-02-28 113 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(); }); 

...但即使智能感知,我无法猜测要写什么而不是“something()”。

我没有使用最新版本的Laravel,因此如果您从代码的哪个版本添加代码,并且您可以在旧版本中执行哪些操作,那将会很不错。

回答

3

由于Blueprint类仍然不支持约束,因此可以像下面那样运行一些原始SQL。

public function up() 
{ 
    DB::statement('ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date")'); 
}