如何更新数据库表列?FastAPI Python



我是新手,我有一个小的测试数据库,看起来像这样:

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) no such column: company.company_id .

如何更新?

当您实际启动产品时,您可以使用一个工具来处理数据库迁移,例如Alembic。Alembic可以为您生成一个迁移脚本,该脚本运行必要的ALTER语句,使您的数据库与您的模型保持一致。

然而,在开发过程中,删除.sqlite文件并再次调用create_all()以根据模式创建新的db可能更容易。

最新更新