2014-10-16 42 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