Laravel 迁移:添加一个具有现有列默认值的列

Laravel Migration: Add a column with a default value of an existing column

我需要在实时站点的 table 上添加一个 last_activity 列,我必须将其默认值设置为等于 updated_at 列值。我正在使用 laravel 5.1 和 mysql 数据库驱动程序。

Schema::table('users', function(Blueprint $table)
{
    $table->dateTime('last_activity')->default("COLUMN VALUE OF UPDATED_AT");
});

谢谢。

这应该有效:

Schema::table('users', function(Blueprint $table) {
    $table->dateTime('last_activity');
});

\DB::statement('UPDATE users SET last_activity = updated_at');

参见"Running a General Statement":https://laravel.com/docs/5.1/database#database-transactions

要在创建或更新 User 时强制执行此关系,您可以使用 Model Events and/or Model Observers