ruby-on-rails - 在 Rails 上创建用户的设计不起作用
问题描述
我创建了一个迁移,用于通过Devise生成用户模型,如下所示:
rails g devise User
然后我通过Devise创建一些视图:
rails g devise:views
现在,当我运行rails db:migrate时,出现以下错误:
C:\Users\andri\Desktop\hoagieShop\hoagieShop>rails db:migrate
== 20190202141046 AddDeviseToUsers: migrating =================================
-- change_table(:users)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: no such table: users: ALTER TABLE "users" ADD "email" varchar DEFAULT '' NOT NULL
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190202141046_add_devise_to_users.rb:7:in `block in up'
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190202141046_add_devise_to_users.rb:5:in `up'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Caused by:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: users: ALTER TABLE "users" ADD "email" varchar DEFAULT '' NOT NULL
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190202141046_add_devise_to_users.rb:7:in `block in up'
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190202141046_add_devise_to_users.rb:5:in `up'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Caused by:
SQLite3::SQLException: no such table: users
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190202141046_add_devise_to_users.rb:7:in `block in up'
C:/Users/andri/Desktop/hoagieShop/hoagieShop/db/migrate/20190202141046_add_devise_to_users.rb:5:in `up'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
这是迁移中的代码:
class AddDeviseToUsers < ActiveRecord::Migration[5.0]
def self.up
change_table :users do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
end
def self.down
raise ActiveRecord::IrreversibleMigration
end
end
有谁明白为什么会这样?我很感激任何帮助!
解决方案
试试这个命令
rake db:drop
rake db:create
rake db:migrate
推荐阅读
- node.js - 使用 mongoose (updateOne - $pull) 删除 MongoDB 中数组中的嵌入式文档不起作用
- laravel - Laravel-Vue:如果字符串值为空,则隐藏带有 vue 的图标
- javascript - 在javascript中使用Set来存储一个元组
- eclipse - 如何为 cygwin 配置 CDT 调试?
- python - subprocess.check_output 没有执行指定的两个 python 文件
- python - 如何检查嵌套字典中的值是否相等
- python - Python 仅由邻居分组
- office-js - Excel 加载项:禁用/启用功能区按钮 - ControlIdNotFound
- python - 提高 pandas 应用函数性能
- amazon-web-services - aws cognito-idp list-users:按电子邮件域过滤?