gpt4 book ai didi

ruby-on-rails - Rails 3.2 迁移无法在更改方法中向 create_table 添加索引

转载 作者:行者123 更新时间:2023-12-03 07:37:27 24 4
gpt4 key购买 nike

这是我在 Rails 3.2.2 中的迁移:

class CreateStatistics < ActiveRecord::Migration
def change
create_table :statistics do |t|
t.string :name
t.integer :item_id
t.integer :value
t.text :desc

t.timestamps
t.index [:name, :item_id]
end

end
end

这是迁移错误:

==  CreateStatistics: migrating ===============================================
-- create_table(:statistics)
ActiveRecord::ConnectionAdapters::TableDefinition
rake aborted!
An error has occurred, all later migrations canceled:

undefined method `index' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0xbd16888>

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

创建索引的正确方法是什么?

最佳答案

您仍然可以添加索引作为“更改”迁移的一部分。您只需在 create_table 调用之外执行此操作即可:

class CreateStatistics < ActiveRecord::Migration
def change
create_table :statistics do |t|
t.string :name
t.integer :item_id
t.integer :value
t.text :desc

t.timestamps
end

add_index :statistics, [:name, :item_id]
end
end

这会在“向上”迁移时正确创建表和索引,并在“向下”迁移时删除索引和表。

关于ruby-on-rails - Rails 3.2 迁移无法在更改方法中向 create_table 添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713015/

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