アプリがMySQL用に作成されたため、citext列タイプを持つPostgreSQL 8.4を使用するherokuに移行しようとしています。
Rails で :citext を使用する方法はありますか?
このチケットを見つけましたが、しばらくの間 Rails の一部ではないようです: https://rails.lighthouseapp.com/projects/8994/tickets/3174-add-support-for-postgresql-引用文の列の種類
アプリがMySQL用に作成されたため、citext列タイプを持つPostgreSQL 8.4を使用するherokuに移行しようとしています。
Rails で :citext を使用する方法はありますか?
このチケットを見つけましたが、しばらくの間 Rails の一部ではないようです: https://rails.lighthouseapp.com/projects/8994/tickets/3174-add-support-for-postgresql-引用文の列の種類
Rails 4.2 では、citext
列の型がネイティブにサポートされています。
Rails < 4.2 を使用している場合は、activerecord-postgresql-citext gem を試すことができます。
これにより、次のような移行を記述できます。
def up
enable_extension("citext")
create_table :models, :force => true do |t|
t.citext :name
t.timestamps
end
end
Rails のデータ型の語彙は限られていると確信しています。他のタイプを処理するには、おそらく古き良き SQL を使用する必要があります。
string
既存の列をに変更したい人はcitext
、移行を作成してみてください
rails g migration change_username_from_string_to_citext
次に、移行を次のようにします
class ChangeUsernameFromStringToCitext < ActiveRecord::Migration[6.0]
def change
enable_extension("citext") # Don't forget this line
change_column :users, :username, :citext
end
end