如何使用Laravel的迁移向表添加约束?

时间:2017-02-28 01:08:14

标签: laravel laravel-migrations

假设我有一个包含periodsstart_date列的表end_date,我想添加约束start_date < end_date

PostgreSQL查询将是:

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

但我希望将其作为PHP的迁移来实现。我猜它看起来像这样:

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

...但即使使用IntelliSense,我也猜不出要写什么而不是“某事()”。

我没有使用最新版本的Laravel,所以如果您添加代码的版本以及在旧版本中可以执行哪些操作会更好。

1 个答案:

答案 0 :(得分:3)

您可以运行一些原始SQL,如下所示,因为Blueprint类仍然不支持约束。

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