Php 为什么laravel迁移会悄无声息地失败?

Php 为什么laravel迁移会悄无声息地失败?,php,laravel-4,data-migration,Php,Laravel 4,Data Migration,我正在将一个已有12年历史的无框架php应用程序转换为Laravel应用程序。旧的应用程序有两个独立的用户表,我已经合并了它们。合并它们需要对数据进行处理。我创建了一个迁移来处理我的一个表中的数据 My up()函数如下所示: public function up() { $users = User::all(); foreach($users as $user) { if ($user->staff_id = '0') { $use

我正在将一个已有12年历史的无框架php应用程序转换为Laravel应用程序。旧的应用程序有两个独立的用户表,我已经合并了它们。合并它们需要对数据进行处理。我创建了一个迁移来处理我的一个表中的数据

My 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
>
当我查看迁移表和用户表时,很明显迁移没有运行

所以,概括一下。没有抛出错误。没有“无需迁移”。没有成功响应。对数据库没有影响*编辑:日志中未列出任何错误


知道为什么会发生这种情况吗?

所以,问题是循环并保存所有这些用户非常占用内存。解决方案是让php无限地访问内存。像这样:

php -d memory_limit=-1 artisan migrate

一旦我这样做了,代码就运行得很好。

我有点困惑,为什么在迁移过程中会有任何用户记录可供提取。你试过把它放在播种机里吗?如果您删除了整个数据库并希望立即重新迁移所有表,该如何运行?您是否查看了php错误日志以获取线索。如果您运行了Ardent或其他“模型”验证,验证可能会失败,因此当您运行$user->save()时,不会发生任何情况。@watcher问得好。我正在将一个已有12年历史的无框架php应用程序转换为Laravel应用程序。旧应用程序有两个独立的用户表,我正在合并它们。合并它们需要对数据进行处理。我在三个不同的环境中进行数据按摩,我希望保持数据的一致性。另外,我想将数据更改保存在版本控制中。@riggsfully是的。cli日志中没有输出。