我计划对我的数据库进行重大更改,这需要一组SQL指令(可能还有非SQL脚本)以将旧数据容纳到新架构中。
现在,在迁移脚本上操作数据是一个好主意吗?或者它只是用于架构(数据库结构)更改?
答案 0 :(得分:0)
数据操作不适合迁移。因为自然迁移的工作原理。我将建议使用迁移来仅定义数据库模式。
Laravel按照创建的确切顺序逐个执行迁移,因此可以跟踪执行和执行顺序 ref。安东尼奥卡洛斯里贝罗。
这可以防止他/她负责他/她想要运行的课程。例如,你可以选择在department表之前为users表种子,在另一种意义上你可以选择反之亦然。移民不具备这种自由。
使用数据操作,我会建议您使用播种机来处理,因为您可以使用
选择在任何时间点运行哪个类php artisan db:seed --class = ClassName
随着名字的到来。填充数据库的意义。
答案 1 :(得分:0)
在考虑迁移时,有两个问题很重要。
原始查询有助于解决这两个问题。
$elements = DB::Select(DB::Raw('SELECT element_id FROM record GROUP BY element_id'));
foreach ($elements as $element)
{
DB::Statement('
INSERT INTO account (created_at, updated_at, name, element_id)
VALUES (NOW(), NOW(), "Migrated account", '. $element->element_id .')
');
}