当前位置:  开发笔记 > 数据库 > 正文

数据库架构更新

如何解决《数据库架构更新》经验,为你挑选了2个好方法。

我正在使用一个使用本地SQLite数据库的AIR应用程序,并且想知道在分发应用程序的新版本时如何管理数据库架构更新.还考虑跳过某些版本的更新.例如,而不是从1.0到1.1,从1.0到1.5.

你会推荐什么技术?



1> Paul Lefebvr..:

对于SQLite,您可以使用user_version pragma来跟踪数据库的版本.要获得版本:

PRAGMA user_version

要设置版本:

PRAGMA user_version = 5

然后,我将每组更新保存在一个SQL文件(嵌入在应用程序中)中,并运行所需的更新以获得最新版本:

Select Case currentUserVersion
Case 1
  // Upgrade to version 2
Case 2
  // Upgrade to version 3
Case etc...
End Select

这允许应用程序将自身更新为最新版本,而不管当前版本的数据库.



2> Kristen..:

我们将每个DDL更改编写到数据库中,当我们进行"发布"时,我们将它们连接到一个"升级"脚本,以及"自上次"以来已更改的任何存储过程

我们有一个表,用于存储应用的最新补丁的版本号 - 因此升级工具可以应用任何较新的补丁.

每个存储过程都在一个单独的文件中.每个都以"insert"语句开头,该语句存储到存储名称SProc,Version和"now"的日志表中.(实际上执行SProc来存储它,它不是原始插入语句).

有时在部署期间,我们手动更改SProc,或从DEV推出赔率和结束,并且比较客户端的TEST和PRODUCTION数据库上的日志使我们能够检查所有内容是否都在同一版本.

我们还有一个"发布"主数据库,我们应用更新,并为新安装使用恢复的备份(节省了运行脚本的时间,这显然会随着时间的推移而增加).我们会及时更新,因为很明显,如果它有点陈旧,可以应用后来的补丁脚本.

我们的发布数据库还包含已清理的启动数据(在新安装上线之前删除,或有时采用和修改),因此任何更新脚本都不包含此数据

SQL Server有一个工具栏按钮来编写更改脚本 - 因此您可以使用GUI工具进行所有更改,而不是保存它们而不是生成脚本.(实际上,有一个复选框可以始终生成一个脚本,因此如果您忘记并按下SAVE,它仍会为您提供事后使用的脚本,可以保存为补丁文件)

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有