簡體   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