gpt4 book ai didi

ruby-on-rails - 运行迁移时出现重复列名错误

转载 作者:IT王子 更新时间:2023-10-29 06:23:16 27 4
gpt4 key购买 nike

每当我在我的 Rails 应用程序中运行迁移时,我都会收到来自 SQLite3 的错误:

SQLite3::SQLException: duplicate column name: photo_file_name: ALTER TABLE "users" ADD "photo_file_name" varchar(255)

我已经有了“向用户添加照片”迁移。在这里:

class AddAttachmentPhotoToUsers < ActiveRecord::Migration
def self.up
change_table :users do |t|
t.has_attached_file :photo
end
end

def self.down
drop_attached_file :users, :photo
end
end

这是用户迁移:

class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :title
t.string :department
t.text :skills
t.boolean :available

t.timestamps
end
end
end

我有点困惑,因为它告诉我有一个重复的列名“photo_file_name”,但我需要将它添加到用户表中?那没有意义。我不需要删除它吗?

如果您需要有关我的应用程序的任何其他详细信息,请告诉我。

最佳答案

如果您的迁移与数据库模式不同步,就会发生这种情况。如果

  • 您“手动”修改了数据库模式
  • 您更改了正在运行的迁移文件
  • schema_migrations 表中的迁移尚未更新

如果您依赖数据库中的数据,rake db:reset 将从头开始重新运行所有迁移。否则,您必须通过添加到 schema_migrations 表来将冲突的迁移识别为已运行。

参见 RailsGuides of migrations

关于ruby-on-rails - 运行迁移时出现重复列名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com