【发布时间】:2022-11-18 18:03:59
【问题描述】:
我在 Docker 中使用一个容器来托管我的 Laravel 应用程序,这个容器连接到另一个使用 Nginx 来托管它的容器。我正在尝试使用像这样的播种机将 SQL 文件导入到我的 Laravel 应用程序中
$path = public_path('sql/2022_11_16_import_table.sql');
$sql = file_get_contents($path);
DB::unprepared($sql);
但是,它显示错误
Symfony\Component\Debug\Exception\FatalErrorException:允许的内存大小为 134217728 字节已耗尽(尝试分配 186885432 字节) 在 /var/www/database/seeds/SqlFileSeeder.php:16
我想这是因为我在 php.ini 中的 memory_limit 是 128M,所以我继续通过更改 PHP 容器内的 php.ini-development 和 php.ini-production 文件来更改它,然后重新启动整个容器和Nginx 容器。然而,当我尝试
php -ini尽管 php.ini 文件已更改,但 memory_limit 仍然是 128M=>128M。我也试过 ini_set('memory_limit','200M');但它似乎仍然没有效果。
【问题讨论】:
-
PHP 只读取 php.ini 文件,其他 2 个文件(php.ini-development 和 php.ini-production)作为样板提供,以建立您自己的 php.ini,因此更改时不会影响任何内容。
-
如果文件太大,为什么不为此使用 MySQL shell?