Rails 4 迁移错误(无法耙 db:migrate) SQLite3::SQLException:重复的列名



我一直在努力让Paperclip宝石正常工作。我最初遇到的问题是图片被上传但没有显示。然后,我做了一个rake-db:rollback来修复这个错误,从而把数据库搞得一团糟。现在我不能耙数据库:再次迁移,因为这个错误

SQLite3::SQLException: duplicate column name: image_file_name: ALTER TABLE "posts" ADD "image_file_name" varchar

我亲自进入迁移文件夹并删除了该文件,试图再次生成迁移。我一直在尝试rails生成回形针后图像,它确实创建了一个迁移文件,但我无法耙db:migrate。

有什么建议吗?

谢谢!

删除迁移文件并不会真正回滚它在数据库中所做的更改。你最好的选择是:

  1. 不要删除迁移,而是注释掉迁移类的内容,然后运行rake db:migrate

假设我有这个作为我的迁移文件

class AddEmailSentToNeeds < ActiveRecord::Migration
  def change
    add_column :needs, :email_sent, :boolean ,default: false
  end
end

只需注释掉该方法,但保留该类,因此它将是:

class AddEmailSentToNeeds < ActiveRecord::Migration
  # def change
  #   add_column :needs, :email_sent, :boolean ,default: false
  # end
end

这只是一种让rails跳过迁移的方法。或

  1. 从一开始就这么做,rake db:droprake db:createrake db:migrate

相关内容

最新更新