迁移、接口集成与数据层交付
MySQL、SQLAlchemy 与数据库设计#Python全栈#第十四阶段#MySQL、SQLAlchemy 与数据库设计#迁移、接口集成与数据层交付约 803 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
metadata.create_all 与 Alembic 迁移有什么区别?
追问 创建缺失表与升级已有结构分别怎样实现?为什么 create_all 不会自动完成已有字段的所有修改?
Alembic revision、upgrade、downgrade 与 current 怎样配合?
追问 迁移脚本、依赖链与数据库版本记录怎样对应?为何回退结构不能保证恢复已经删除的业务数据?
autogenerate 为什么生成的是需要审核的候选迁移?
追问 字段重命名、默认值、约束和数据回填为何可能需要人工调整?怎样核对脚本与实际 SQL?
多个分支产生迁移 head 时,应如何整合?
追问 依赖图、merge revision 与冲突结构变更各需检查什么?为什么合并迁移图不等于所有数据库操作自然兼容?
怎样安全地给已有大表增加字段或约束?
追问 新增可兼容结构、分批回填、校验旧数据和最终收紧约束如何安排?数据库迁移与应用发布顺序怎样配合?
Flask 或 FastAPI 中如何管理每次请求的数据工作单元?
追问 创建会话、业务事务、构建输出和关闭各在哪一步?为什么应在发送成功响应前确认必要提交已成功?
如何把唯一冲突、记录不存在和数据库不可用转换为合理接口错误?
追问 数据库约束名、业务含义、状态码与日志怎样对应?为什么不应向客户端暴露 SQL、连接地址和完整驱动异常?
SQLite 验证通过为什么不一定证明 MySQL 行为正确?
追问 类型、排序规则、外键、事务、锁与迁移怎样存在差别?哪些关键样例需要在目标数据库重复验证?
应用数据库账户、迁移账户与连接配置怎样控制权限?
追问 最小权限、TLS、凭据保管和日志脱敏如何安排?为什么普通业务服务通常不需要拥有全部管理和结构变更权限?
慢接口应该怎样区分数据库与应用层瓶颈?
追问 连接池等待、SQL 耗时、扫描量、锁等待、ORM 对象构造与响应序列化分别怎样测量?如何关联请求日志和查询记录?
核对资料: Alembic 自动生成迁移。