【发布时间】:2015-12-31 15:52:24
【问题描述】:
我有两列存储字符串,:column_a 和 :column_b。
我知道我能做到:
add_index :table, [:column_a, :column_b], unique: true
但是,我需要做到以下几点:
add_index :table, [:column_a, 'lower(column_b)'], unique: true
当我尝试迁移时,这当然会出错。
我收到lower(column_b) 不是列的错误。
我正在使用 PostgreSQL。
老实说,在这一点上,我正在考虑只创建一个名为 column_b_lowercase 的列来作为索引。
【问题讨论】:
-
好吧,我曾经在 C# 中做过类似的事情,但是因为重音而不是小写。我只是创建了一个
not_accent列 -
如果一切都失败了,直接在 SQL 中执行。 Rails 支持迁移中的任意 SQL 语句。
-
@CraigRinger 是的,我决定这样做。
标签: postgresql ruby-on-rails-4 indexing database-migration