PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách thay đổi loại cột từ ký tự thay đổi thành số nguyên bằng cách sử dụng sqlalchemy-migrate

Có vẻ như sqlalchemy.migrate không hỗ trợ hiển thị truy vấn hợp lệ trong trường hợp thay đổi từ loại cột Chuỗi thành Số nguyên cho postgresql.

Trong trường hợp của bạn, tôi sẽ triển khai nó dưới dạng thực thi truy vấn trực tiếp và tiếp tục.

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 di chuyển từ Chuỗi sang Số nguyên có thể không thành công vì các lý do khác nhau - khi giá trị cột sẽ chứa một số giá trị không thể chuyển đổi thành số. Vì vậy, tôi sẽ thêm một số xác thực bổ sung vào logic ứng dụng để giữ cho việc di chuyển hạ cấp có thể xảy ra sau này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để đăng ký người dùng mới nhận thông báo?

  2. Nhảy khoảng cách SQL qua điều kiện cụ thể và sử dụng chì () thích hợp

  3. Làm thế nào để gọi thủ tục PostgreSQL trong Java?

  4. Createuser:không thể kết nối với cơ sở dữ liệu postgres:FATAL:role tom không tồn tại

  5. mặc định cho cột xxxx không thể được truyền tự động để nhập boolean trong Postgres DB