工匠跳过迁移
Posted
技术标签:
【中文标题】工匠跳过迁移【英文标题】:Artisan skipping migrations 【发布时间】:2018-04-23 20:25:16 【问题描述】:所以,我刚刚从 Github 拉下了一个 Laravel 5 项目,我之前没有做过任何工作,但我需要设置以添加一个或三个功能。
问题是,我没有该项目的任何数据库表。这应该很容易修复,因为迁移都在正确的文件夹中。
我运行 php artisan migrate
,它告诉我其中一个迁移尝试更新不存在的表时出现问题。
问题是,这不是按日期进行的第一次迁移。更早的迁移应该会创建它所说的尚未存在的表。
基本上是这样的:
Migration 1
Migration 2
Migration 3
Migration 4
Migration 5 <--- here's where the error is occurring
Migration 6
etc....
它似乎根本没有在引发错误的迁移之前运行迁移,并且它没有向该架构中的迁移表写入任何内容。
我得到的错误是:
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'table1' doesn't exist (SQL: select * from `table1` where `code` = DEFAULT_ADDRESS limit 1)
和
[PDOException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'table1' doesn't exist
不用说,我有点困惑为什么它会跳过迁移,即使是那些不涉及该表的迁移。
【问题讨论】:
您的数据库中应该有一个“迁移”表,用于存储所有已完成的迁移。看看吧! 我愿意。它没有写任何东西。它甚至没有向另一个模式中的迁移表写入任何内容(我也检查过。) 【参考方案1】:你应该运行:
php artisan migrate:status
它应该按照迁移的运行顺序向您显示迁移。确保订单有效。如果不是什么东西搞砸了,您可能需要更改文件以获得有效的迁移顺序。
【讨论】:
奇怪。它没有。它只是给了我与上面相同的错误消息。[Illuminate\Database\QueryException]
和 [PDOException]
.
所以很可能问题出在其他地方。例如,当您运行php artisan route:list
时,一切正常吗?问题可能出在某些服务提供者或某些构造函数中
完全相同的错误。我现在想知道我是否错过了一些东西,并且在我安装作曲家时没有注意到我错过了它。
看来问题不在于迁移。例如,您可能会在控制器构造函数中运行一些查询,这可能是一个问题,但如果没有完整的代码很难说,这可能不适合 SO 调查。以上是关于工匠跳过迁移的主要内容,如果未能解决你的问题,请参考以下文章