Php 为什么laravel迁移会悄无声息地失败?
我正在将一个已有12年历史的无框架php应用程序转换为Laravel应用程序。旧的应用程序有两个独立的用户表,我已经合并了它们。合并它们需要对数据进行处理。我创建了一个迁移来处理我的一个表中的数据 My up()函数如下所示: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
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日志中没有输出。