【发布时间】:2013-08-19 03:48:53
【问题描述】:
尝试重新安装 Devise。 Postgresql 上的 Rails 4
我已按照 Devise 的说明(如添加 devise gem/bundle install)并对我的环境/application.rb 进行了更改/添加了我的 flash 消息
然后跑了
rails generate devise User
得到了这个……
invoke active_record
create db/migrate/20130819025615_add_devise_to_users.rb
insert app/models/user.rb
route devise_for :users
但问题是当我尝试运行 rake db:migrate 时出现此错误
== AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "users" does not exist
: ALTER TABLE "users" ADD COLUMN "email" character varying(255) DEFAULT '' NOT NULL/Users/name/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in exec'
所以我知道错误告诉我不存在表“用户”,但设计应该创建这个,所以我的主要问题是......解决这个问题的最简单方法是什么?
另外,为什么 Devise 不创建这个?这会导致未来的问题吗?
我是否应该在 postgres 中创建一个 Users 表,然后在 Devise 中再次运行该命令并让它更改必要的文件并“设计”它? (如果它甚至会这样做)
谢谢!
【问题讨论】:
-
先尝试运行
rake db:create -
你能粘贴你的 db/migrate/20130819025615_add_devise_to_users.rb 文件的内容吗?
-
我认为问题出现在 development.rb 中。我也遇到了错误,我意识到这是因为我没有保存 config.action_mailer.default_url_option ={:host=>'localhost'} 并且我有一个之前使用 railscast omniauth 页面生成的 user.yml。所以有冗余,我必须覆盖,但没有看到要覆盖的评论。
标签: ruby-on-rails devise dbmigrate