sql >> Databáze >  >> RDS >> PostgreSQL

Rails Migration mění sloupec pro použití polí Postgres

PostgreSQL neví, jak automaticky převést sloupec varchar do pole varchar . Neví, co byste mohli zamýšlet, protože nemá žádný způsob, jak zjistit, v jakém formátu si myslíte, že jsou aktuální hodnoty.

Takže to musíte říct; to je to, co USING doložka je pro.

Zdá se, že ActiveRecord explicitně nepodporuje USING klauzule (není překvapivé, protože sotva podporuje i ty nejzákladnější databázové funkce). Pro migraci však můžete zadat svůj vlastní text SQL.

Za předpokladu, že vaše řetězce jsou odděleny čárkami a samy o sobě čárky nemusí obsahovat, například:

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

(Sám Rails nepoužívám a netestoval jsem to, ale je to v souladu se syntaxí použitou v příkladech jinde.)



  1. Jak se připojit k MySQL na Amazon EC2 z Linuxu / Mac?

  2. SQL select where not in subdotaz nevrací žádné výsledky

  3. Jak získat rozdíl v letech ze dvou různých dat?

  4. Jak provedu GROUP BY na aliasovém sloupci na serveru MS-SQL?