管理数据库可能是一项艰巨且耗时的琐事,对于从事小型项目或原型的开发人员而言。为了帮助这一点,我创建了一个名为SQLSugar的小型项目。
sqlsugar是一个库,它使使用真实数据库易于使用,而无需花费时间生成迁移。这可能非常有助于为想法或小型项目运行快速原型。您可以轻松地在数据库中添加新表,列和索引,而不必担心管理迁移。
这个怎么运作?
要使用SQLSUGAR,您只需使用SQLalchemy的模型来定义数据库架构,然后将该模式传递给SQLSUGAR的迁移函数。然后,SQLSUGAR将使用ALEMBIC自动化您定义的模式和实际数据库之间的差异,并执行必要的操作以使两者匹配。
例如,如果SQLSUGAR在数据库中缺少的代码中找到了一个新列,则将自动创建该列。这为您节省了手动创建和运行迁移的时间和精力,使您可以专注于构建项目。
用法
安装:
pip install sqlsugar
首先,用sqlalchemy定义模型:
import logging
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import Session, declarative_base
from sqlsugar import migrate
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO
)
Base = declarative_base()
class Cat(Base): # type: ignore
__tablename__ = "cat"
id = Column(Integer, primary_key=True)
name = Column(String)
然后,您可以使用SQLSUGAR的迁移命令自动获取数据库。
from sqlsugar import migrate
# You only need this command to handle creating tables & running migrations
migrate(engine.connect(), Base.metadata)
限制
尽管我的项目是快速原型思想的绝佳解决方案,但确实有局限性。它不支持重命名列或删除列。随着项目的增长,您应该切换到使用Alembic等更成熟的解决方案。