gpt4 book ai didi

ruby - 无法在 rake 迁移中为 PG 创建索引 - Rails

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:46 25 4
gpt4 key购买 nike

我正在尝试编写一个将创建一个表并添加几个索引的迁移。

这是迁移:

class CreatePages < ActiveRecord::Migration
def change
create_table :pages do |t|
t.string "name", :limit => 50
t.string "permalink"
t.integer "position"
t.boolean "visible"
t.integer "subject_id"

add_index("pages","subject_id")
add_index("pages","name")

t.timestamps
end
end
end

当我尝试运行此迁移时,出现以下错误:

PG::Error: ERROR: relation "pages" does not exist : CREATE INDEX "index_pages_on_subject_id" ON "pages" ("subject_id")

谁能告诉我我做错了什么?

谢谢!

最佳答案

您需要在 create_table block 外调用 add_index 方法,或在 block 内调用 index

第一种方法:

class CreatePages < ActiveRecord::Migration
def change
create_table :pages do |t|
t.string "name", :limit => 50
t.string "permalink"
t.integer "position"
t.boolean "visible"
t.integer "subject_id"

t.timestamps
end

add_index("pages","subject_id")
add_index("pages","name")
end
end

第二种方法:

class CreatePages < ActiveRecord::Migration
def change
create_table :pages do |t|
t.string "name", :limit => 50
t.string "permalink"
t.integer "position"
t.boolean "visible"
t.integer "subject_id"
t.index("subject_id")
t.index("name")

t.timestamps
end


end
end

就个人而言,我会选择第二个,因为它更整洁。

关于ruby - 无法在 rake 迁移中为 PG 创建索引 - Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990159/

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