【发布时间】:2015-11-21 08:15:17
【问题描述】:
是否可以在迁移期间转换表的数据?举个例子,我想添加一个新列,但是默认值对于现有数据是不够的(默认值对于新记录很好,但是现有数据已经具有需要放入新字段的结构)。
我希望能够做这样的事情:
Schema::table('comments', function(Blueprint $table) {
$table->unsignedInteger('level')->default(0);
$table->text('lineage');
});
foreach (Comments::whereNotNull('parent_id')->get() as $c) {
$c->level = $c->calculateLevel();
$c->save();
}
这样“级别”就不必按需计算(如果评论树很长,可能会很密集)
我可以编写一个命令来计算并保存这些级别值,但感觉就像迁移时应该发生的事情。
【问题讨论】:
标签: php laravel-5 database-migration