sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man ändrar kolumntyp från tecken som varierar till heltal med hjälp av sqlalchemy-migrate

Det verkar som att sqlalchemy.migrate inte har stöd för att rendera en giltig fråga vid ändring av kolumntyperna String till Integer för postgresql.

I ditt fall skulle jag implementera det som en direkt sökning och gå vidare.

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

BTW migrering från sträng till heltal kan misslyckas av olika anledningar - när kolumnvärdet skulle innehålla något värde som inte kan konverteras till nummer. Så jag skulle lägga till lite extra validering i applikationslogiken för att möjliggöra nedgraderingsmigrering senare.




  1. Ruby:mysql2-Gem fungerar inte (Mac OS X Snow Leopard, Ruby 1.9.2)

  2. PHP Kontrollera efter NULL

  3. Postgresql intarray fel:odefinierad symbol:pfree

  4. HTML-formulärinlägg fungerar inte i PHP och MySQL