Postgres ALTER TABLE ... USING
-
Comments:
- here.
Helped out a person in #django IRC some time ago, and learned something new about Postgres.
I’ve had data type migrations in the past (where you change a database column in some way, and need to alter the data that is already in that column), however I’ve created a function to do so.
It turns out you can just write an expression, and that works too:
ALTER TABLE defect_defect
ALTER COLUMN risk_rating
SET DATA TYPE INTEGER
USING CASE WHEN risk_rating = 'HIGH' THEN 3
WHEN risk_rating = 'MEDIUM' THEN 2
WHEN risk_rating = 'LOW' THEN 1;
Of course, this still would cause issues if you had code running from the old version (that expected the text values). However, it is nice to know.