如何管理桌面文件数据库版本?
|
在升级桌面应用程序时如何管理数据库更改?
我们有一个用于桌面应用程序的SQLite数据库。卸载程序保留该数据库供下次安装使用。但是,如果下一次安装具有更新的版本怎么办?如何保留数据但升级表?
我们使用.NET和Linq2sql
没有找到相关结果
已邀请:
2 个回复
薄扩络拜
每次我更改“破坏”数据库的代码时,此版本号都会增加(对数据库内容的模式或语义进行不兼容的更改) 代码创建新数据库时,它将执行此SQL命令
请注意,这必须在执行完所有CREATE TABLE命令之后,否则,sqlite将递增SCHEMA_VERSION。 当代码打开现有数据库时,它要做的第一件事是
从该查询返回的SCHEMA_VERSION与DB_VERSION进行比较。如果它们不匹配,则说明数据库是由其他软件版本创建的。接下来会发生什么取决于您需要的细节。通常: 数据库是由较新的软件创建的:通知用户并退出 数据库是由要进行升级的较旧软件创建的:提供用户选项以运行升级代码或重新初始化数据库 数据库是由较旧的软件创建的,没有升级:提供用户选项以重新初始化数据库或退出。 升级代码如何工作的细节在很大程度上取决于您的需求。通常,打开旧数据库并打开一个新的空数据库。读取旧表,根据需要转换数据,然后写入新数据库。关闭数据库。删除旧数据库。将新数据库重命名为标准数据库名称。打开新的数据库。
穗揣