繁体   English   中英

rake db:迁移错误表

[英]rake db:migrate error tables

我正在尝试运行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表。 看起来迁移已经运行,无需再次运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM