json_populate_recordset from example ejemplo data postgresql jsonb

from - postgresql jsonb example



postgresql migrando JSON a JSONB (2)

Esta pregunta ya tiene una respuesta aquí:

En postgresql 9.4, se incorporó el nuevo JSONB.

En un DB vivo en postgresql 9.3 tengo una columna JSON.

Quiero migrarlo a JSONB.

Asumiendo que migré el DB primero a 9.4 (usando pg_upgrade). ¿Que hago después?


En el contexto de Rails, aquí hay una alternativa de migración de ActiveRecord:

def change reversible do |dir| dir.up { change_column :models, :attribute, ''jsonb USING CAST(attribute AS jsonb)'' } dir.down { change_column :models, :attribute, ''json USING CAST(attribute AS json)'' } end end

No sé cómo se compara esto con la respuesta aceptada en cuanto al rendimiento, pero probé esto en una tabla con 120 000 registros, cada registro con cuatro columnas json y me tomó alrededor de un minuto migrar esa tabla. Por supuesto, supongo que depende de cuán compleja sea la estructura json .

Además, observe que si sus registros existentes tienen un valor predeterminado de {} , debe agregar a las declaraciones anteriores el default: {} , porque de lo contrario tendrá columnas jsonb , pero el valor predeterminado seguirá siendo ''{}''::json .


ALTER TABLE table_with_json ALTER COLUMN my_json SET DATA TYPE jsonb USING my_json::jsonb;