迁移错误PG :: UndefinedTable:错误:关系“users”不存在

时间:2017-05-18 13:32:14

标签: ruby-on-rails ruby database migration

我在创建新数据库后运行迁移时收到错误。

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  validates_presence_of :first_name, :last_name, :phone
  has_many :projects
  has_many :items

  def full_name
    "#{first_name} #{last_name}"
  end

  scope :find_by_fullname, -> (fullname) { 
    self.all
        .select{ |u| u if u.full_name.parameterize == fullname}
        .first }

end

错误是通过范围find_by_fullname获取的, 错误是

PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 8:                WHERE a.attrelid = '"users"'::regclass 

请有人建议如何解决此问题。

3 个答案:

答案 0 :(得分:0)

  

PG :: UndefinedTable:错误:关系&#34;用户&#34;不存在

错误表明您的数据库中没有"users"表。

这意味着您忘记运行迁移,请运行以下命令来运行迁移

rake db:migrate

# OR

bundle exec rake db:migrate

答案 1 :(得分:0)

我今天遇到这个问题,在新的干净服务器上执行rake db:migrate时,我得到了:

Caused by:
PG::UndefinedTable: ERROR:  relation "nodes" does not exist
LINE 8:                WHERE a.attrelid = '"nodes"'::regclass

事实证明我在Node.find(...)之一打电话config/initializers。当你已经有一个迁移的数据库时,它可以正常工作,但是在新的服务器上,它会导致鸡和蛋问题:rake崩溃,然后才能运行迁移。

答案 2 :(得分:-1)

我猜你没有运行迁移,这就是为什么users表不存在你的数据库。

尝试通过运行此命令来运行迁移  bundle exec rake db:migrate