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. P>
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? P>
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 P>
5 Réponses :
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. P>
Rails 4.2 a une prise en charge natif du type de colonne p>
Si vous utilisez des rails <4.2, vous pouvez essayer d'utiliser activerecord-postgresql-citetxt gemme. p>
Cela vous permet d'écrire des migrations comme ceci: p>
juste pour l'enregistrement. On dirait que des rails 4.2 a un support natif pour cela. P>
Ajout de la prise en charge de la colonne CitezExt dans l'adaptateur PostgreSQL. P> blockQuote>
Comme d'autres personnes ont mentionné, les rails ont désormais une prise en charge natale pour le type de colonne code> Citezt Citez> (depuis 4,2).
Pour migrer les colonnes existantes, vous devez activer l'extension CitExt, puis 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: p> Change_column code>. Changer Colum est non réversible, vous aurez donc besoin d'un
distinct code> et
down code>. P>
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