Ich versuche, eine vorhandene Spalte des Typs Varchar zu Jsonb zu konvertieren. Die Spalte enthält Zeichenfolgen wie "schwarz weiß orange" und möchte sie in das jsonb-Format konvertieren, sodass sie in ["schwarz", "weiß", "orange"] konvertiert wird.Schienenmigration - Spalte von Varchar zu Jsonb ändern
class AlterColorsDatatype < ActiveRecord::Migration[5.0]
def change
change_column :quotes, :colors, :jsonb, default: '[]', using: 'colors::jsonb'
end
end
ich dies erwartet den Spaltentyp zu konvertieren jsonb und die Verwendung von: bestehenden Datenteil umwandeln würde auch jsonb.
Stattdessen bekomme ich diesen Fehler:
Active :: StatementInvalid: PG :: InvalidTextRepresentation: Fehler: ungültige Eingabesyntax für Typ json DETAIL: Token "Indigo" ist ungültig. CONTEXT: JSON-Daten, Zeile 1: Indigo : ALTER TABLE "zitiert" Spalte "Farben" TYPE ALTER jsonb Farben :: jsonb
Ich habe andere Syntax versucht, aber immer noch endet mit dem gleichen Fehler auf. Ich denke, dass ich das ganze Spaltenattribut durch Attribut mit etwas wie to_json umwandeln müsste, aber bin nicht sicher, wie man diesen Fehler löst. Nach vielen Google-Suchen scheinen andere Personen mit dem gleichen Fehler keine Lösung gefunden zu haben.