首先我运行了rails generate model User name:string email:string
,这会创建一个迁移。后来我做了一个db:migrate
,我收到了这个错误:
bundle exec rake db:migrate
== 20150728195629 CreateUsers: migrating ======================================
-- create_table(:users)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "users" already exists.....
当你generate model
创建表user
但是当你rake db:migrate
它再次尝试创建它时。
我很困惑!我做错了吗?
https://www.railstutorial.org/book/modeling_users#code-generate_user_model
答案 0 :(得分:3)
你必须创建一个表,如Marsatomic所说。运行
bundle exec rake db:migrate:status
查看您的迁移历史记录,了解您创建它的位置。如果您看到它,则可以通过该表回滚迁移,删除创建它的迁移文件,然后重新运行迁移。如果您在任何地方都看不到它,则必须在没有迁移的情况下创建表。那时你应该像Marsatomic在上面的评论中指示的那样做。
答案 1 :(得分:3)
刚进入控制台
rails console
并输入
ActiveRecord::Migration.drop_table(:users)
然后 退出控制台和
rake db:migrate
答案 2 :(得分:1)
你可以使用'db:reset',它=='db:drop db:create db:migrate'