我正在计划对我的数据库进行重大更改,这将需要一组 SQL 指令(可能还包括一个非 SQL 脚本)来将旧数据适应新模式。
现在,在迁移脚本上操作数据是个好主意吗?还是仅用于模式(数据库结构)更改?
我正在计划对我的数据库进行重大更改,这将需要一组 SQL 指令(可能还包括一个非 SQL 脚本)来将旧数据适应新模式。
现在,在迁移脚本上操作数据是个好主意吗?还是仅用于模式(数据库结构)更改?
在考虑迁移时,有两个问题很重要。
原始查询有助于解决这两个问题。
$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 .')
');
}
数据操作不是迁移的事情。由于自然迁移工程。我会建议使用迁移来仅定义数据库模式。
迁移是由 Laravel 以它们创建的确切顺序一一执行的,因此它可以跟踪执行和执行顺序参考。安东尼奥·卡洛斯·里贝罗。
这可以防止一个人负责他/她想要运行的课程或文件。例如,您可以选择在部门表之前播种用户表,在另一种意义上,您可以选择反之亦然。移民并非伴随着这种自由而来。
使用数据操作,我建议您使用播种机来处理它,因为您可以通过使用选择在任何时间点运行哪个类
php artisan db:seed --class=ClassName
顾名思义,种子。意思是填充数据库。