繁体   English   中英

laravel迁移为何会默默失败?

[英]Why is laravel migration failing silently?

我正在将一个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
>

当我查看迁移表和用户表时,很明显迁移尚未运行。

因此,回顾一下。 没有引发错误。 没有“没有要迁移的东西”。 没有成功回应。 对数据库没有影响。 *编辑:日志中未列出任何错误。

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

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

php -d memory_limit=-1 artisan migrate

一旦我这样做,代码就可以正常运行了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM