Tôi có cùng một vấn đề và ý nghĩ sử dụng thư viện di chuyển chỉ dành cho điều tầm thường này làm cho tôi
run rẩy. Dù sao, đây là nỗ lực của tôi cho đến nay:
def add_column(engine, table_name, column):
column_name = column.compile(dialect=engine.dialect)
column_type = column.type.compile(engine.dialect)
engine.execute('ALTER TABLE %s ADD COLUMN %s %s' % (table_name, column_name, column_type))
column = Column('new column', String(100), primary_key=True)
add_column(engine, table_name, column)
Tuy nhiên, tôi không biết cách chèn primary_key=True
vào yêu cầu SQL thô.
Vì vậy, tôi phải di chuyển toàn bộ cơ sở dữ liệu chỉ để thêm cột? Điều đó nghe có vẻ không vui. Cảm ơn! – Chris
Vì vậy, đối với ALTER TABLE, tôi có thể làm điều đó thông qua SQLAlchemy (tức là nó hỗ trợ viết SQLite thẳng)? Nhưng tôi sẽ di chuyển – Chris
Không, SQLAlchemy không hỗ trợ sửa đổi bảng cơ sở dữ liệu, chỉ cần tạo. Bạn sẽ phải thực hiện 'ALTER' thông qua sqlite3. –