$ rake db:migrate发生错误,此更新和所有后续迁移都已取消

Mic*_*ele 7 windows sqlite rake ruby-on-rails

我是RoR的新手,我不断收到此错误消息:

$ rake db:migrate
==  CreateUsers: migrating ====================================================
-- create_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id"
INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "email" varchar
(255), "created_at" datetime, "updated_at" datetime)

Tasks: TOP => db:migrate
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

我一直在寻找解决方案3天,但我似乎找不到任何适合我的方法.

提前谢谢你的帮助:) PS - 我正在运行Windows.

Pet*_*ete 7

table "users" already exists似乎是问题所在.您是否尝试使用某些SQLITE管理工具从数据库中手动删除该表?

或者,您可以在迁移脚本中包含删除表(应在db/migrate文件夹中调用create_users.rb).内def updrop_table :users:

      def up
         drop_table :users

         create_table :users do |t|
         t.string :name
         #...

         t.timestamps
      end
Run Code Online (Sandbox Code Playgroud)

哦,我记得从我的RoR时间开始,表名"Users"可能会导致问题.可能这是相关的.


小智 7

不确定您是否关注了Michael Hartl关于RoR的教程.

但是有人说教程的步骤存在问题http://archive.railsforum.com/viewtopic.php?id=44944

rake db:drop:all <----------将擦除所有内容然后rake db:migrate再次运行应解决问题.

祝好运

  • 在运行“rake db:migrate”之前,我必须在“rake db:drop:all”之后运行“rake db:create”。 (2认同)