【发布时间】:2016-07-21 17:20:11
【问题描述】:
我正在使用SQLite.Swift,我想知道如何在应用程序启动时验证数据库是否仍然具有相同的架构,因为在更新时,新应用程序可能会在表中添加列在这种情况下,我无法使用设备上的现有数据库。
我将不得不迁移/重新创建表。
请问该怎么做?
【问题讨论】:
我正在使用SQLite.Swift,我想知道如何在应用程序启动时验证数据库是否仍然具有相同的架构,因为在更新时,新应用程序可能会在表中添加列在这种情况下,我无法使用设备上的现有数据库。
我将不得不迁移/重新创建表。
请问该怎么做?
【问题讨论】:
为了跟踪数据库版本,您可以使用 sqlite 提供的内置用户版本变量(sqlite 对这个变量没有任何作用,您可以随意使用它)。它从 0 开始,您可以使用以下 sqlite 语句获取/设置此变量:
> PRAGMA user_version;
> PRAGMA user_version = 1;
请参阅此answer,其中讨论了您的要求,包括在更新后进行架构更改
【讨论】:
PRAGMA table_info(tablename) 不检查架构会更好吗?