【问题标题】:Laravel: Base table or view not found: 1146 Table 'database.pages doesn't existLaravel:未找到基表或视图:1146 表'database.pages 不存在
【发布时间】:2014-10-08 12:49:25
【问题描述】:

我正在开发 CMS,但我的迁移有点问题。我添加了一个新的迁移文件,我想添加那个。那没用,所以我跑了这个:

php artisan migrate:reset

之后我跑了这个:

php artisan migrate:install
php artisan migrate

现在我得到了这个错误:

{"error":{"type":"Illuminate\\Database\\QueryException","message":"SQLSTATE[42S02]: Base table or 
view not found:1146 Table 'cms.pages' doesn't exist (SQL: select * from `pages`)"

错误有点告诉我它找不到数据库,因为这是真的。

我还有一个运行迁移的命令,我像这样运行它:

php artisan app:install

但这显示了同样的错误......

【问题讨论】:

  • app/config/app.php 中添加了自定义服务提供商吗?它们仍然在工匠命令期间运行,如果其中一个依赖于现有的页表,您将遇到这种情况。
  • 不,我不...我确实创建了自己的 SiteServiceProvider: package('app/site', 'site', public_path() . '/site'); } 公共函数 register() { 需要 public_path() 。 '/site/routes.php'; } }
  • 除非您明确将其添加到应用配置中,否则它不会被包含在内。另一种可能性是在bootstrap/start.phpapp/start/global.phpapp/start/local.phpapp/routes.php 中添加一些正在寻找该表的内容
  • 我确实使用 laravel-menu 提供程序,并从我的 app/routes.php 中的页面生成菜单,可以吗?
  • 是的,即使在工匠命令期间,路由仍会得到处理。这就是$ php artisan routes 知道路线的方式:)

标签: php laravel migrate


【解决方案1】:

从这些文件中删除任何从您的模型中请求数据的行,以确保 artisan 不会尝试从您不存在的表中加载数据:

  • bootstrap/start.php
  • app/start/global.php
  • app/start/local.php
  • app/routes.php

另外,请务必取消注册在 app/config/app.php 内的注册或引导方法中使用该表中数据的任何服务提供商。


问题在于,这些文件不仅会针对浏览器(Web)请求执行,还会针对所有请求执行,包括命令行工匠调用(例如php artisan migrate)。因此,如果您在这些文件中的任何一个可用之前尝试使用某些东西,那么您将度过一段糟糕的时光。

【讨论】:

  • 让我试试这个:D
  • 这就是答案 :D 谢谢老兄!你知道我以后如何用我的 laravel/menu 防止这种情况发生吗(这是存储库:github.com/lavary/laravel-menu
  • 也许,我对此并没有深入研究,但我将只定义一个通用的“页面”路由,并为路由提供参数,并让该路由指向的控制器从模型中获取数据.我会在服务提供商中注册菜单。当您需要再次从头开始迁移时,您仍然需要取消注册该服务提供商,但它的破坏性比清除您的路线要小得多,恕我直言。
  • 您的建议为我指明了正确的方向。我的问题是在表存在之前我在 AuthServiceProvider 中引用了一个模型。
  • 谢谢它的工作,在我的情况下(L5)我从app/Providers/AppServiceProvider.php请求数据
【解决方案2】:

您可以使用它来指示您的应用何时从控制台运行。 我相信这个问题只会在你运行命令时出现

if( !App::runningInConsole() ){
  //allow laravel-menu to run
}

这样可以防止从不存在的表中加载数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2015-07-21
    • 2021-05-30
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多