对 sqlalchemy 表字段的操作:添加、修改、删除
在 python 中,sqlalchemy 库用于管理关系型数据库。它提供了方便的 api 来创建和操作表。但是,对于修改现有表的字段,sqlalchemy 自身并没有提供直接的方法。
添加字段
对于添加新字段,可以使用 migrations 相关的主题。迁移机制允许逐步修改数据库架构,而不会破坏现有数据。例如,在 flask-sqlalchemy 扩展中,可以使用以下代码来添加新字段:
from flask_sqlalchemy import sqlalchemy db = sqlalchemy() class user(db.model): id = db.column(db.integer, primary_key=true) username = db.column(db.string(80), unique=true, nullable=false) # 新增字段 email = db.column(db.string(120), unique=true, nullable=false)
运行 flask db migrate 和 flask db upgrade 命令后,该字段将被添加到数据库表中。
修改字段
与添加字段类似,修改字段也需要使用迁移机制。例如,要将 username 字段从 80 个字符增加到 120 个字符,可以使用以下代码:
# 修改字段类型 user_table = db.table('user', db.metadata, autoload_with=db.engine) column = user_table.columns.username column.alter(type_=db.string(120))
删除字段
删除字段与添加和修改类似,也需要使用迁移机制。例如,要删除 email 字段,可以使用以下代码:
# 删除字段 user_table = db.Table('user', db.metadata, autoload_with=db.engine) del user_table.columns.email
其他考虑
在开发阶段,直接清除所有表并重新创建也是一种方法。但是,对于已经上线的应用程序,不建议直接修改数据库表。通常,需要遵循上线 sql 审核执行等流程,并考虑兼容性等问题。