7

アプリがMySQL用に作成されたため、citext列タイプを持つPostgreSQL 8.4を使用するherokuに移行しようとしています。

Rails で :citext を使用する方法はありますか?

このチケットを見つけましたが、しばらくの間 Rails の一部ではないようです: https://rails.lighthouseapp.com/projects/8994/tickets/3174-add-support-for-postgresql-引用文の列の種類

4

5 に答える 5

9

レール 4.2+

Rails 4.2 では、citext列の型がネイティブにサポートされています。

レール < 4.2

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
于 2014-09-03T19:31:26.833 に答える
0

Rails のデータ型の語彙は限られていると確信しています。他のタイプを処理するには、おそらく古き良き SQL を使用する必要があります。

于 2010-04-16T03:22:52.370 に答える
0

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
于 2020-10-29T13:11:35.870 に答える