我正在将一个12岁的无框架php应用程序转换为Laravel应用程序。旧的应用程序有两个单独的用户表,我已合并。合并它们需要按摩数据。我创建了一个迁移来按摩我的一个表格中的数据。
我的up()函数如下所示:
public function up()
{
$users = User::all();
foreach($users as $user) {
if ($user->staff_id = '0') {
$user->role = '4';
} elseif ($user->role != '1') {
$user->role = '3';
}
$user->save();
}
}
我之前在迁移时刻运行了类似的功能,运行正常。然而,这个产生了以下输出:
myusername at local in ~/Sites/tgdp/trunk
> mamp-php artisan migrate
myusername at local in ~/Sites/tgdp/trunk
>
当我查看我的迁移表和User表时,显然迁移尚未运行。
所以,回顾一下。没有错误抛出。否#34;无需迁移。"没有成功的回应。对数据库没有影响。 *编辑:日志中未列出任何错误。
知道为什么会这样吗?
答案 0 :(得分:1)
因此,事实证明问题是循环并保存所有这些用户是非常耗费内存的。解决方案是让php无限制地访问内存。像这样:
php -d memory_limit=-1 artisan migrate
一旦我这样做,代码运行良好。