【问题标题】:Heroku Undefined Table ErrorHeroku 未定义表错误
【发布时间】:2016-01-06 11:36:37
【问题描述】:

我刚刚安装了 Heroku,并试图让我的应用程序在其上运行。

我收到此错误

2016-01-06T11:27:26.741740+00:00 app[web.1]: => Rails 4.2.0 application starting in production on http://0.0.0.0:47038
2016-01-06T11:27:26.741741+00:00 app[web.1]: => Run `rails server -h` for more startup options
2016-01-06T11:27:26.741741+00:00 app[web.1]: => Ctrl-C to shutdown server
2016-01-06T11:27:26.741742+00:00 app[web.1]: Started GET "/" for 122.104.136.142 at 2016-01-06 11:27:26 +0000
2016-01-06T11:27:26.800681+00:00 app[web.1]: Processing by ProductsController#home as HTML
2016-01-06T11:27:26.819306+00:00 app[web.1]:   Product Load (1.5ms)  SELECT  "products".* FROM "products" LIMIT 30 OFFSET 0
2016-01-06T11:27:26.819330+00:00 app[web.1]: PG::UndefinedTable: ERROR:  relation "products" does not exist
2016-01-06T11:27:26.819331+00:00 app[web.1]: LINE 1: SELECT  "products".* FROM "products" LIMIT 30 OFFSET 0
2016-01-06T11:27:26.819332+00:00 app[web.1]:                                   ^
2016-01-06T11:27:26.819332+00:00 app[web.1]: : SELECT  "products".* FROM "products" LIMIT 30 OFFSET 0
2016-01-06T11:27:26.819793+00:00 app[web.1]:   Rendered products/_product_display.html.erb (5.4ms)
2016-01-06T11:27:26.819862+00:00 app[web.1]:   Rendered products/home.html.erb within layouts/application (7.9ms)
2016-01-06T11:27:26.819966+00:00 app[web.1]: Completed 500 Internal Server Error in 19ms

我知道我的迁移被塞满了,如果我删除数据库,我将无法运行 rake db:migrate 而不会在本地得到相同的错误。所以为了让他们工作,我运行rake db:drop 然后rake db:create 然后rake db:schema:load。它加载架构并且rake db:migrate 工作。

有没有办法像我在本地一样在 Heroku 中加载模式?或者任何其他方法可以让它工作?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 heroku


    【解决方案1】:

    通常,您应该能够像在本地一样在 Heroku 上运行所有相同的 rake 命令(假设您在两端运行相同的代码)。

    你试过了吗:

    heroku run rake db:drop
    heroku run rake db:create
    heroku run rake db:schema:load
    heroku run rake db:migrate
    

    或者您是否尝试在不删除 heroku 数据库或类似的东西的情况下修复它?

    【讨论】:

      【解决方案2】:

      删除 Heroku 上的数据库:

      heroku pg:reset SHARED_DATABASE --confirm APP_NAME
      

      然后再次迁移数据库:

      heroku run rake db:migrate

      希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        尝试运行heroku run rake db:reset,然后运行heroku run rake db:migrate

        这应该可行。

        【讨论】:

          猜你喜欢
          • 2019-02-07
          • 1970-01-01
          • 2012-01-13
          • 2020-04-17
          • 1970-01-01
          • 2013-03-03
          • 1970-01-01
          • 2018-08-19
          • 1970-01-01
          相关资源
          最近更新 更多