【问题标题】:Migration error with devise迁移错误与设计
【发布时间】:2015-04-23 13:52:05
【问题描述】:

嘿,我的页面有问题。我使用 gem 'devise' 为“用户”创建迁移文件,之后我可能忘记了rake db:migrate,但我真的不太确定我在这里做了什么来复制任何东西。

我运行了代码rails g devise user,我可能忘记了db:migrate,然后运行了代码rails g devise:views

这是一个 TeamTreeHouse 项目,如果我对我的问题感到困惑,我很抱歉......无论如何这里是错误消息。

==  AddDeviseToUsers: migrating ===============================================

-- change_table(:users, :email) 耙中止! 发生错误,此迁移和所有后续迁移均已取消:

SQLite3::SQLException: 列名重复:email: ALTER TABLE "users" ADD "email" varchar(255) DEFAULT '' NOT NULL

任务:TOP => db:migrate (通过使用 --trace 运行任务查看完整跟踪)

【问题讨论】:

    标签: mysql ruby-on-rails devise migration


    【解决方案1】:

    您似乎已经有一个“用户”表

    尝试运行:rake db:reset 在删除并重新创建数据库后运行迁移。

    更新

    此命令将清除您存储的所有数据(除非存在于您的seeds.rb 中),如果您的数据库中有重要数据,请小心使用此命令。

    【讨论】:

    • 这不是很危险吗?如果他有不想丢失的重要数据怎么办?
    • 你说得对,我认为不会对 TreeHouse 项目造成危险,但我的答案已更新以设置此警告。
    • 谢谢大家!是的,它一点也不危险……我只是在这里学习基础知识,所以犯一些错误可能会很好哈哈!我把你的代码放进去,它出现了另一个错误,说 sqlite 已经存在
    • rake db:reset 无法删除 db/development.sqlite3 : #<:eacces: permission denied c:> db /development.sqlite3 已经存在
    • 您的 Rails 服务器正在运行吗?如果是,你应该停止它。
    【解决方案2】:

    他的命令将清除您存储的所有数据(除非存在于您的seeds.rb 中),如果您的数据库中有重要数据,请小心使用此命令。

    【讨论】:

    • 如何忽略迁移错误以便尽快更新我的个人资料
    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多