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

Rails Migration ændrer kolonne for at bruge Postgres-arrays

PostgreSQL ved ikke, hvordan man automatisk konverterer en kolonne med varchar ind i en matrix af varchar . Den ved ikke, hvad du måske har til hensigt, fordi den ikke kan vide, hvilket format du tror, ​​de aktuelle værdier er i.

Så du skal fortælle det; det er hvad USING klausul er for.

ActiveRecord ser ikke ud til eksplicit at understøtte USING klausul (ikke overraskende, da den knap understøtter selv de mest basale databasefunktioner). Du kan dog angive din egen SQL-tekst til migreringen.

Forudsat at dine strenge er kommaseparerede og måske ikke i sig selv indeholder kommaer, for eksempel:

def change
  change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end

(Jeg bruger ikke Rails selv og har ikke testet dette, men det stemmer overens med den syntaks, der bruges i eksempler andre steder).



  1. Rådgivning ved brug af pivottabel i Oracle

  2. Sådan opretter du en offline internationaliseringsapp:Brug Sqlite-databasen

  3. Hvordan får man numeriske typer fra MySQL ved hjælp af PDO?

  4. Få adgang til eksperternes syn på MVP-topmødet i 2020