已删除的迁移文件被执行:Laravel 应用程序

Posted

技术标签:

【中文标题】已删除的迁移文件被执行:Laravel 应用程序【英文标题】:Deleted migration files getting executed : Laravel application 【发布时间】:2018-01-02 15:20:30 【问题描述】:

我已经删除了一些迁移文件。但是当我执行 php artisan migrate 命令时,显示旧迁移文件中的错误。

[照亮\数据库\查询异常] SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 (SQL : alter table cushbu_notifications 添加约束 cushbu_notifications_art_id_foreign 外键 (art_id) 在删除级联上引用cushbu_arts (id)

现在我没有 cushbu_notifications 的迁移文件,而是为 cushbu_user_notifications 创建了一个新的迁移文件。我从数据库中删除了 cushbu_notifications 表,以及迁移表中的相应条目。

【问题讨论】:

你试过运行'composer dump-autoload'吗? 是的,我试过了。但没有解决问题 你试过从数据库中删除表吗?如果你删除迁移文件,你也应该从数据库中删除表。 我已经删除了,问题中提到了 【参考方案1】:

从迁移表中删除该条目。如果在另一个迁移文件中使用了引用,还删除引用。

【讨论】:

我已删除,问题中提到 如果在另一个迁移文件中使用了引用,也会删除引用 没有其他迁移文件只有一个迁移文件存在【参考方案2】:

手动删除迁移文件后,通过以下命令清除缓存,然后迁移

php artisan cache:clear

然后

php artisan migrate

【讨论】:

【参考方案3】:

手动删除迁移文件不会将它们从 Laravel 缓存中删除。你可以通过执行这个来移除它们。

php artisan optimize

【讨论】:

以上是关于已删除的迁移文件被执行:Laravel 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

已删除的迁移文件仍在迁移

laravel 数据库迁移

删除尚未迁移的迁移

我需要清除哪些 Laravel 缓存以删除有关丢失迁移文件的错误?

如何在 laravel 中运行特定迁移 [重复]

Laravel 迁移:使用 artisan 命令删除特定表并删除迁移文件