为什么laravel migrate:fresh 422表需要很长时间?

Why laravel migrate:fresh takes a long time for 422 tables?

我有一个 Laravel 项目,每次我想创建一个新项目时,我都使用此命令迁移数据库

php artisan migrate:fresh

它运行良好,但经过 3 年的工作,我已经达到了 422 个表,现在当我想要迁移时,至少需要将近 5 到 10 分钟才能完成迁移作业。

我可以在 localhost 中毫无问题地等待,但我最大的问题是当我使用 LaravelInstaller 库向项目添加安装程序功能时。

这需要很长时间,最终 returns 下一个错误

internal server error 500

因此,为了使此安装能够持续这么长时间,我必须更改 php.ini 中的 Max time limit 来解决此问题。

有什么方法可以加快迁移速度吗?

谢谢

这是对 speed-up 问题的回答,而不是 internal server error 500,因为没有任何与导致该错误的问题相关的详细信息。

我假设您至少在使用 Laravel 8,并且在此基础上您可以尝试 Schema Dump,添加它是为了创建当前模式的转储。

命令如下:

php artisan schema:dump

# Below command is taken from below link, in case of more help, don't hesitate 
# to read the docs
# Dump the current database schema and prune all existing migrations...
php artisan schema:dump --prune

你有这个问题只是因为你创建了一个巨大的迁移文件列表,在这种情况下,一般来说,做一个 migration:fresh 应该不会花那么多时间,即使 422 table,但你有这个问题,因为重复这个过程并在几年内使列表变大。

这是 link 到 reference