【问题标题】:ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "guestbooks" does not existActiveRecord::StatementInvalid (PG::UndefinedTable: 错误: 关系“留言簿”不存在
【发布时间】:2015-12-07 21:49:59
【问题描述】:

当我尝试访问我的 URL /guestbooks 时,我继续在 Papertrail 日志中收到此错误消息。

这条路线在 localhost 上运行良好,但在 Heroku 上却不行。我的 Rails 命名约定关闭了吗?我认为他们是对的,但我可能错了。

我尝试运行rake db:rest,然后尝试运行rake db:drop db:create db:migrate,这表明我的迁移文件中出现错误,所以我删除了它们,然后再次运行命令,不再收到来自PG的迁移文件错误.

我尝试提交更改并运行heroku run rake db:migrate,但我的错误仍然存​​在。下面是我的 MVC 和路由。

    class GuestbooksController < ApplicationController
    before_action :load_page

    def index
        @guestbook = Guestbook.new
    end

    def create
        @guestbook = Guestbook.new(guestbook_params)

        if @guestbook.save
            flash.now[:notice] = "Thanks for taking the time to write us! We greatly appreciate it!"
            render :index
        else
            flash.now[:notice] = "Your message failed to post, please try again"
            render :index
        end
    end

    private

    def load_page
        @guestbooks = Guestbook.page(params[:page])
    end

    def guestbook_params
        params.require(:guestbook).permit(:name, :email, :message)
    end
end

我的架构

  create_table "guestbooks", force: :cascade do |t|
    t.string   "name"
    t.string   "email"
    t.text     "message"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

我的模型

class Guestbook < ActiveRecord::Base
    paginates_per 5
end

【问题讨论】:

  • rake db:drop db:create db:migrate 在 Heroku 上不起作用,您需要先执行 heroku pg:reset,然后再执行 heroku run rake db:migrate
  • 我正在查看,但找不到确切的语法。我必须指定一个特定的数据库。会是 heroku pg:reset, :guestbooks 吗? @约翰贝农
  • no heroku pg:reset DATABASE
  • @JohnBeynon 感谢您的回答,事实证明这并没有解决我的问题。然后运行迁移任务,它仍然存在。

标签: ruby-on-rails activerecord heroku


【解决方案1】:

问题是我没有任何迁移(只有 schema.rb)。您可以根据需要删除所有迁移,但如果这样做,您需要运行 rake db:setup 以使用 schema.rb 来设置数据库(rake db:reset 只会查找迁移)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 2022-09-24
    • 1970-01-01
    相关资源
    最近更新 更多