2014-10-16 66 views
0

我想在我的Rails應用程序使用的設計,但是當我去點遷移我的數據庫設計給了我這個錯誤時錯誤:設計罰球和遷移


rake db:migrate 
== 20141016065244 AddDeviseToPatients: migrating ============================== 
-- change_table(:patients) 
    -> 0.0127s 
-- add_index(:patients, :email, {:unique=>true}) 
rake aborted! 
StandardError: An error has occurred, this and all later migrations canceled: 

SQLite3::ConstraintException: UNIQUE constraint failed: patients.email: CREATE UNIQUE INDEX "index_patients_on_email" ON "patients" ("email") 

我試圖使用設計的一個已經啓動的項目,其中「用戶」表稱爲「患者」。

這是一個表:

"Patient(id: integer, name: string, loginName: string, login: integer, created_at: datetime, updated_at: datetime)" 

那麼簡單的錯誤我在做什麼? :)

這裏的移民文件:https://gist.github.com/macmattias/1c81717dbf218d18dc72

回答

1

領域電子郵件丟失?

您需要添加一個字段的電子郵件到您的餐桌病人。

+0

是的,我沒有它,但遷移想要添加它。 – 2014-10-16 10:14:04

+0

ofcourse遷移想要一個電子郵件字段,因爲電子郵件字段是'登錄名'。有一個關於使用其他字段而不是電子郵件的問題:http://stackoverflow.com/questions/10866667/devise-authenticating-with-username-instead-of-email – 2014-10-16 10:16:34

+0

和遷移的錯誤是因爲add_index:患者,:電子郵件,獨特:真實。你不能在不存在的字段上添加索引。 – 2014-10-16 10:17:56