7
votes

Postgresql + rails citext

J'essaie de passer à Heroku qui utilise PostgreSQL 8.4, qui a un type de colonne CitExt qui est agréable puisque l'application a été écrite pour MySQL.

Y a-t-il un moyen d'utiliser: citeext avec des rails (de sorte que si les migrations sont exécutées sur MySQL, le CitExt utiliserait simplement une chaîne / texte?

J'ai trouvé ce billet, mais il semble que ça ne va pas faire partie des rails pendant un moment: https: //Rails.Lighthouseapp .Com / Projets / 8994 / Billets / 3174-ADD-SUPPORT-FOR-POSTGRESQL-CITEXT-Type de colonne


0 commentaires

5 Réponses :


0
votes

Je suis sûr que les rails ne disposent que d'un vocabulaire limité de types de données. Vous devrez probablement utiliser un bon SQL à l'ancienne pour traiter de tout autre type.


0 commentaires

9
votes

Rails 4.2+

Rails 4.2 a une prise en charge natif du type de colonne

<4.2

Si vous utilisez des rails <4.2, vous pouvez essayer d'utiliser activerecord-postgresql-citetxt gemme.

Cela vous permet d'écrire des migrations comme ceci: xxx


0 commentaires

1
votes

juste pour l'enregistrement. On dirait que des rails 4.2 a un support natif pour cela.

Ajout de la prise en charge de la colonne CitezExt dans l'adaptateur PostgreSQL.

http://guides.rubyonrails.org/4_2_release_notes.html


0 commentaires

1
votes

Comme d'autres personnes ont mentionné, les rails ont désormais une prise en charge natale pour le type de colonne Citezt (depuis 4,2).

Pour migrer les colonnes existantes, vous devez activer l'extension CitExt, puis Change_column . Changer Colum est non réversible, vous aurez donc besoin d'un distinct et down . xxx

désactiver l'extension est seulement Obligatoire La dernière fois que vous supprimez une colonne CitExt lorsque vous roulez de nouveau en arrière plutôt que d'ajouter des commentaires laids, il peut être préférable d'avoir des migrations distinctes et d'expliquer la raison pour laquelle dans votre message de validation: xxx


0 commentaires

0
votes

pour que quiconque souhaitant modifier une colonne code> existante code> sur citext code>, essayez de créer une migration

class ChangeUsernameFromStringToCitext < ActiveRecord::Migration[6.0]
  def change
    enable_extension("citext") # Don't forget this line
    change_column :users, :username, :citext
  end
end


0 commentaires