我在创建新数据库后运行迁移时收到错误。
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
请有人建议如何解决此问题。
答案 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