PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Puis-je stocker des tableaux dans hstore avec Rails

hstore est destiné au stockage simple clé/valeur, où les clés et les valeurs sont de simples chaînes non structurées. À partir du manuel fin :

Notez la dernière phrase :clés et valeurs dans hstore sont des chaînes. Cela signifie que vous ne pouvez pas mettre un tableau dans un hstore value sans prise en main pour convertir le tableau vers et à partir d'une chaîne et vous ne voulez vraiment pas vous embêter avec ce genre de chose.

Cependant, il existe un type de données JSON disponible :

et JSON peut facilement gérer des tableaux et des objets intégrés. Essayez plutôt d'utiliser JSON :

add_column :users, :properties, :json

Vous devrez supprimer l'ancien hstore la colonne en premier.

De plus, vous ne vouliez pas array: true sur votre hstore colonne car vous ne stockiez pas un tableau de hstore s, vous en vouliez juste un.