rake db:迁移错误表

我正在尝试运行rake db:migrate并在控制台中收到错误。

好像我正在创建一个已经存在的表,但我不知道如何删除旧表,或重置数据库以重新启动。

我没有任何用户这样擦除或从新鲜开始不会是一个问题。

create_table(:users)rake aborted! StandardError:发生错误,此以及所有后续迁移都已取消:

SQLite3 :: SQLException:表“users”已经存在:CREATE TABLE“users”(“id”INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,“email”varchar(255)DEFAULT”NOT NULL,“encrypted_pa​​ssword”varchar(255)DEFAULT’ ‘NOT NULL,“reset_password_token”varchar(255),“reset_password_sent_at”datetime,“remember_created_at”datetime,“sign_in_count”integer DEFAULT 0 NOT NULL,“current_sign_in_at”datetime,“last_sign_in_at”datetime,“current_sign_in_ip”varchar(255),“ last_sign_in_ip“varchar(255),”created_at“datetime,”updated_at“datetime)/Users/jovanhernandez/.rvm/gems/ruby-2.1.2/gems/sqlite3-1.3.9/lib/sqlite3/database.rb:91 :在`initialize’中

如果您不介意删除数据,则可以运行

 rake db:drop rake db:create rake db:migrate 

那应该解决它。 否则,您可以暂时注释掉部分内容,从而导致迁移中的更改(或更改)方法出现问题,然后运行迁移。 运行迁移后,取消注释迁移。

这样做可以让我们接受迁移是最新的。

您可以使用重置数据库

 $ rake db:reset 

或者,如果要撤消迁移,可以使用

 $ rake db:rollback 

或者,如果要更新表,可以在迁移文件中将其从create_table更改为change_table

 create_table :users do |t| 

 change_table(:users) do |t| 

看起来你没有任何用户迁移,但你有迁移来更改用户表。你试图改变用户表而不存在它。如果你有模式文件,那么你可以使用rake db:schema从那里加载你的数据库:dump命令。

您已经创建了users表。 看起来迁移已经运行,无需再次运行。