为什么laravel迁移无声地失败?

时间:2014-07-10 21:37:13

标签: php laravel-4 data-migration

我正在将一个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;无需迁移。"没有成功的回应。对数据库没有影响。 *编辑:日志中未列出任何错误。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

因此,事实证明问题是循环并保存所有这些用户是非常耗费内存的。解决方案是让php无限制地访问内存。像这样:

php -d memory_limit=-1 artisan migrate

一旦我这样做,代码运行良好。