Installing Devise: `PG::UndefinedTable: ERROR: relation "users" does not exist`
Installing Devise: `PG::UndefinedTable: ERROR: relation "users" does not exist`
这是我成功安装 Devise 的方法:
- 我投入了设计gem
- 运行
bundle install
- 已安装的设备
rails generate devise:install
- 运行
rake db:migrate
(成功)为了保险起见
现在,当我尝试执行 rails generate devise User
时,出现以下错误:
== 20190915133638 AddDeviseToUsers: migrating =================================
-- change_table(:users)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "users" does not exist
: ALTER TABLE "users" ADD "email" character varying DEFAULT '' NOT NULL
我尝试将一些自定义字段添加到设计迁移中,但随后再次使用自动生成的迁移并获得相同的结果。
任何人都可以看到我是如何得到这个错误的吗?我试过 rake db:reset db:create db:migrate
但没用。
尝试 db:drop
而不是 db:reset
你之前有过User
模特吗?似乎 devise 也是这么想的,它正试图将其列添加到一个不存在的 User
模型中。
这就是我要做的...
- 运行
rails db:drop
- 删除
db/schema.rb
个文件。
- 删除
db/migrate/20190915133638_add_devise_to_users.rb
- 运行
rails generate devise:install
再一次
- 运行
rails db:migrate
编辑
如果前面的步骤不起作用,请尝试在设计迁移之前创建 users
table。
为此,请执行以下步骤:
rails g model User
- 更改迁移文件的名称,使其在
AddDeviseToUsers
迁移之前立即执行。
- 运行
rails db:migrate
这是我成功安装 Devise 的方法:
- 我投入了设计gem
- 运行
bundle install
- 已安装的设备
rails generate devise:install
- 运行
rake db:migrate
(成功)为了保险起见
现在,当我尝试执行 rails generate devise User
时,出现以下错误:
== 20190915133638 AddDeviseToUsers: migrating =================================
-- change_table(:users)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "users" does not exist
: ALTER TABLE "users" ADD "email" character varying DEFAULT '' NOT NULL
我尝试将一些自定义字段添加到设计迁移中,但随后再次使用自动生成的迁移并获得相同的结果。
任何人都可以看到我是如何得到这个错误的吗?我试过 rake db:reset db:create db:migrate
但没用。
尝试 db:drop
而不是 db:reset
你之前有过User
模特吗?似乎 devise 也是这么想的,它正试图将其列添加到一个不存在的 User
模型中。
这就是我要做的...
- 运行
rails db:drop
- 删除
db/schema.rb
个文件。 - 删除
db/migrate/20190915133638_add_devise_to_users.rb
- 运行
rails generate devise:install
再一次 - 运行
rails db:migrate
编辑
如果前面的步骤不起作用,请尝试在设计迁移之前创建 users
table。
为此,请执行以下步骤:
rails g model User
- 更改迁移文件的名称,使其在
AddDeviseToUsers
迁移之前立即执行。 - 运行
rails db:migrate