PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zmienić typ kolumny ze zmiennej na liczbę całkowitą za pomocą sqlalchemy-migrate?

Wygląda na to, że sqlalchemy.migrate nie obsługuje renderowania prawidłowego zapytania w przypadku zmiany typów kolumn typu String na Integer dla postgresql.

W twoim przypadku zaimplementowałbym to jako bezpośrednie wykonanie zapytania i ruszyłem dalej.

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 migracja z String do Integer może się nie powieść z różnych powodów - gdy wartość kolumny zawierałaby jakąś wartość, której nie można przekonwertować na liczbę. Dodałbym więc trochę dodatkowej walidacji do logiki aplikacji, aby umożliwić późniejszą migrację do niższej wersji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Strumień pobrany z Postgresa z jOOQ nie zwraca wyników z zajęć

  2. Jak sprawdzić, czy istnieje publiczny schemat PostgreSQL?

  3. Jak mogę wyodrębnić części DateRangeField Django Postgres?

  4. Zwrócić zapytanie z funkcji?

  5. Jak ustawić domyślną datę wartości Postgresql, taką jak „RRRRMM”?