我是新手,我有一個小測驗資料庫,如下所示:
class Company(Base):
__tablename__ = 'company'
building_id = Column(Integer, primary_key=True, nullable=False, index=True)
name = Column(String, nullable=False)
buildings = relationship("Building", back_populates="company")
class Building(Base):
__tablename__ = 'building'
building_id = Column(Integer, primary_key=True, nullable=False, index=True)
name = Column(String, nullable=False)
ip_address = Column(String, nullable=True)
company_id = Column(Integer, ForeignKey('company.company_id'),nullable=False)
company = relationship("Company", back_populates="buildings")
您可能已經注意到,我弄亂了公司 ID 的名稱,將其命名為“building_id”。我已經在模型中更改了這一點,但它不會使用錯誤訊息“(sqlite3.OperationalError)沒有這樣的列:company.company_id”來更新表。
我該如何更新?
uj5u.com熱心網友回復:
當您實際啟動您的產品時,您會使用一個工具來為您處理資料庫遷移,例如 Alembic。Alembic 可以為您生成一個遷移腳本,該腳本運行必要的 ALTER 陳述句以使您的資料庫與您的模型保持同步。
但是,在開發程序中,洗掉.sqlite檔案并create_all()再次呼叫以獲取根據架構創建的新資料庫可能會更容易。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/340587.html
