Skip to content Skip to sidebar Skip to footer

How To Alter Column Type From Character Varying To Integer Using Sqlalchemy-migrate

I'm using sqlalchemy-migrate to alter the type of one of the columns in a table in a Postgre SQL database. The upgrade script I'm using is: # -*- cofing: utf-8 -*- from sqlalchemy

Solution 1:

Looks like sqlalchemy.migrate doesn't have support for rendering valid query in case of altering from String to Integer column types for postgresql.

In your case I would implement it as a direct query execution and move on.

def downgrade(migrate_engine):
    # ALTERTABLE courses ALTERCOLUMN number SET DATA TYPE integer;
    migrate_engine.execute('ALTER TABLE courses ALTER COLUMN number TYPE INTEGER USING number::numeric')

BTW migrating from String to Integer may fail for different reasons - when column value would contain some value that cannot be converted to number. So I would add some extra validation into application logic to keep downgrade migration possible later on.

Post a Comment for "How To Alter Column Type From Character Varying To Integer Using Sqlalchemy-migrate"