首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 7手工迁移崩溃是因为数据库尚未迁移

Laravel 7手工迁移崩溃是因为数据库尚未迁移
EN

Stack Overflow用户
提问于 2022-02-27 16:02:24
回答 2查看 176关注 0票数 0

我在Laravel 7中开发了一个webapp,我创建了一个迁移来向一个表中添加一些新的列。然后,我添加了代码来处理这些列。一切都很好。

但是,当我将新代码合并到一个新分支并试图运行迁移以添加它们所需的字段时,我收到了一条SQL错误消息,告诉我缺少了一些列。

运行php的似乎会迁移(或任何其他手工命令),将执行web.php文件,而已经(间接地)引用了尚未出现的新列,这将导致该错误消息。请参见下面的堆栈跟踪显示如下:

代码语言:javascript
复制
[2022-02-27 16:28:08] local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'LARAVEL_LOCALE' in 'field list' (SQL: select `ID`, `LARAVEL_LOCALE` from `LANGUAGE`) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'LARAVEL_LOCALE' in 'field list' (SQL: select `ID`, `LARAVEL_LOCALE` from `LANGUAGE`) at /Applications/MAMP/htdocs/gng2/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671)

..。

代码语言:javascript
复制
#6 /Applications/MAMP/htdocs/gng2/app/GNG/GNGLangDAO.php(24): Illuminate\\Database\\Query\\Builder->get()
#7 /Applications/MAMP/htdocs/gng2/routes/web.php(26): App\\GNG\\GNGLangDAO->loadAllLocales()
#8 /Applications/MAMP/htdocs/gng2/vendor/laravel/framework/src/Illuminate/Routing/RouteFileRegistrar.php(35): require('/Applications/M...')

对于我来说,运行php迁移的基本上需要迁移已经完成了,这听起来有点奇怪。在运行迁移时,是否有任何方法可以避免执行web.php文件,或者可以推荐其他解决方案来解决这个问题?

谢谢你,W.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-03 12:36:47

最后,通过将迁移和代码分离为两个独立的分支并分别提交,解决了这个问题。对于我来说,这比为这样一个时间问题修改代码更低的风险。

票数 0
EN

Stack Overflow用户

发布于 2022-03-01 07:30:14

如果在ServiceProvider上运行查询,则需要检查应用程序是否运行在ServiceProvider中的控制台上

代码语言:javascript
复制
if(App::runningInConsole())
{
  // app is running in console
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71286276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档