Ruby on rails postgresql上的Activerecord迁移错误
我有一个没有解释的错误 我的错误:Ruby on rails postgresql上的Activerecord迁移错误,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有一个没有解释的错误 我的错误: G::UndefinedColumn: ERROR: column "conjoncture_index_id" referenced in foreign key constraint does not exist : ALTER TABLE "reports" ADD CONSTRAINT "fk_rails_c25ad9a112" FOREIGN KEY ("conjoncture_index_id") REFERENCES "conjonctur
G::UndefinedColumn: ERROR: column "conjoncture_index_id" referenced in foreign key constraint does not exist
: ALTER TABLE "reports" ADD CONSTRAINT "fk_rails_c25ad9a112"
FOREIGN KEY ("conjoncture_index_id")
REFERENCES "conjoncture_indices" ("id")
class AddColumnToReports < ActiveRecord::Migration
def change
add_reference :reports, :conjoncture_indice, index: true
add_foreign_key :reports, :conjoncture_indices
end
end
class CreateConjonctureIndices < ActiveRecord::Migration
def change
create_table :conjoncture_indices do |t|
t.date :date
t.float :value
t.timestamps null: false
end
end
end
class ConjonctureIndice < ActiveRecord::Base
has_many :reports
by_star_field :date
end
create_table "conjoncture_indices", force: :cascade do |t|
t.date "date"
t.float "value"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
我的迁移:
G::UndefinedColumn: ERROR: column "conjoncture_index_id" referenced in foreign key constraint does not exist
: ALTER TABLE "reports" ADD CONSTRAINT "fk_rails_c25ad9a112"
FOREIGN KEY ("conjoncture_index_id")
REFERENCES "conjoncture_indices" ("id")
class AddColumnToReports < ActiveRecord::Migration
def change
add_reference :reports, :conjoncture_indice, index: true
add_foreign_key :reports, :conjoncture_indices
end
end
class CreateConjonctureIndices < ActiveRecord::Migration
def change
create_table :conjoncture_indices do |t|
t.date :date
t.float :value
t.timestamps null: false
end
end
end
class ConjonctureIndice < ActiveRecord::Base
has_many :reports
by_star_field :date
end
create_table "conjoncture_indices", force: :cascade do |t|
t.date "date"
t.float "value"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
我正在我的项目中寻找“联合索引”,但没有。。。我认为旧版本的项目使用“conconcture\u index”而不是“conconcture\u indice”,但所有出现的都被删除。在rails中,迁移名称是复数,而模型名称是单数。因此,模型名称应该是索引,但不能是索引,因为它是一个保留关键字,其复数形式转换为ConjunctureIndex
注意-如果您仍有疑问,那么您可以删除并重新创建数据库,但我怀疑命名约定在您的情况下是一个问题。在rails中,迁移名称是复数的,而模型名称是单数的。因此,模型名称应该是索引,但不能是索引,因为它是一个保留关键字,其复数形式转换为ConjunctureIndex
注意-如果您仍有疑问,则可以删除并重新创建数据库,但我怀疑命名约定在您的案例中是一个问题。好的,我发现了问题。我认为错误信息与之前相同,但他引用了另一个名为“信心指数”的表。错误来自“indice”字。。当我删除它时,我没有问题。好的,我发现了问题。我认为错误信息与之前相同,但他引用了另一个名为“信心指数”的表。错误来自“indice”字。。当我删除它时,我没有问题。你能发布conconconcture的schema.rb吗?我担心命名确实是个问题,除了一切看起来都正常之外。您可以重命名并检查它吗?只需将它命名为conconture并删除索引并标记部分I将所有出现的conconctureIndicate重命名为conconconture,并且始终出现相同的错误“G::UndefinedColumn:error:外键约束中引用的列“confidence\u index\u id”不存在“activerecord是否有缓存?”?他会用它来迁移。。。因为在我的项目中,没有任何地方提到这个“索引”,所以你可以发布conconctureIndicate部分的schema.rb吗?我担心命名确实是个问题,除了一切看起来都正常之外。您可以重命名并检查它吗?只需将它命名为conconture并删除索引并标记部分I将所有出现的conconctureIndicate重命名为conconconture,并且始终出现相同的错误“G::UndefinedColumn:error:外键约束中引用的列“confidence\u index\u id”不存在“activerecord是否有缓存?”?他会用它来迁移。。。因为在我的项目中,没有任何地方提到这个“索引”重新命名和迁移,让我知道发生了什么然后重新命名和迁移,让我知道发生了什么然后很高兴你能找到它。很高兴你能找到它。