PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Posso archiviare array in hstore con Rails

hstore è inteso per una semplice memorizzazione di chiave/valore, in cui sia le chiavi che i valori sono semplici stringhe non strutturate. Dal fine manual :

Nota l'ultima frase:chiavi e valori in hstore sono stringhe. Ciò significa che non puoi inserire un array in un hstore valore senza alcuna gestione per convertire l'array in e da una stringa e non vuoi davvero scherzare con quel genere di cose.

Tuttavia, esiste un tipo di dati JSON disponibile:

e JSON possono gestire facilmente array e oggetti incorporati. Prova invece a usare JSON:

add_column :users, :properties, :json

Dovrai rimuovere il vecchio hstore prima colonna però.

Inoltre, non volevi array: true sul tuo hstore colonna perché non stavi archiviando un array di hstore s, ne volevi solo uno.