管理应用程序数据库的流行最佳实践是什么?
一种选择是使用 sql 脚本来创建空表,并从硬编码选项开始。(说出所有地点或职业类型)。在升级过程中,您知道里面有什么,没有什么,所以在服务器上运行一个 sql 脚本来添加列和任何新数据。
另一种是以编程方式执行此操作,每次服务器运行时 - 它检查数据库是否存在,如果不存在,则创建它。在添加新列的过程中,会有代码检查此架构中是否存在某个列,如果不存在,则添加我选择的默认值,以及任何应该需要的新数据。
我的约束是:
- 如果出现任何问题,应该能够盲目地恢复备份。
- 最少的人工干预
- 我计划在添加表和列的情况下全天候运行它:首先升级 SQL 数据库,然后升级相应字段的应用程序代码。删除表/列:首先降级应用程序,然后降级 SQL 数据库。
- 我没有使用 ORM。
我在这里是否遗漏了我应该添加到约束中的东西?请阐明与答案相关的推理。
另外,我希望,由于我要求的是有约束力的答案以及来源和推理,所以这不算是基于意见的问题。
编辑:在 Added constraint(3) 中响应评论。