正在安装Devise:`PG :: UndefinedTable:错误:关系“用户”不存在

时间:2019-09-15 13:42:57

标签: ruby-on-rails devise

这是我成功安装Devise的步骤:

  • 我放入了设计宝石
  • bundle install
  • 已安装rails generate devise:install的装置
  • 为了安全起见{成功{1}}了

现在,当我尝试执行rake db:migrate时,出现以下错误:

rails generate devise User

我尝试过在devise迁移中添加一些自定义字段,但随后又使用自动生成的迁移,无论哪种方式都得到相同的结果。

谁能看到我如何收到此错误?我尝试过== 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 ,但无济于事。

2 个答案:

答案 0 :(得分:1)

您之前有User模型吗?似乎该设计人员也想到了这一点,并且正在尝试将其列添加到不存在的User模型中。

这就是我要做的...

  1. 运行rails db:drop
  2. 删除db/schema.rb文件。
  3. 删除db/migrate/20190915133638_add_devise_to_users.rb
  4. 再次运行rails generate devise:install
  5. 运行rails db:migrate

编辑

如果上述步骤不起作用,请尝试在设计迁移之前创建一个users表。

为此,请执行以下步骤:

  1. rails g model User
  2. 更改迁移文件的名称,以便在AddDeviseToUsers迁移之前立即执行该文件。
  3. 运行rails db:migrate

答案 1 :(得分:0)

尝试用codecs代替USE Northwind GO CREATE OR ALTER PROCEDURE dbo.Test ( @rowCnt int OUTPUT ) AS SELECT * FROM dbo.Customers SET @rowCnt = @@ROWCOUNT GO DECLARE @rowCount int EXEC dbo.Test @rowCount OUTPUT SELECT @rowCount