Flutter - 如何更新 Sqflite 中的 table 结构?
Flutter - How to update the table structure in Sqflite?
我的应用程序正在生产中,我想在用户更新应用程序时管理用户数据而不丢失他们的数据,我如何使用 sqflite
实现此目的。明确地我想添加一列并删除另一列。
您可能 add a column 使用原始 sql,但 sqlite(因此 sqflite)不支持删除列。为此,您需要执行以下操作:
- 增加数据库版本号
- 在
onUpgrade
中将旧数据库列复制到临时table
- 删除原来的table
- 使用原始 table 名称但使用正确的架构创建新的 table
- 从临时文件中复制数据table
- 删除临时文件table
抱歉,这不是一个完整的答案,但如果我遇到你的情况,我会选择这个方向。
我遇到了同样的问题,发现 this article 这似乎是一个很好的解决方案。
我的应用程序正在生产中,我想在用户更新应用程序时管理用户数据而不丢失他们的数据,我如何使用 sqflite
实现此目的。明确地我想添加一列并删除另一列。
您可能 add a column 使用原始 sql,但 sqlite(因此 sqflite)不支持删除列。为此,您需要执行以下操作:
- 增加数据库版本号
- 在
onUpgrade
中将旧数据库列复制到临时table - 删除原来的table
- 使用原始 table 名称但使用正确的架构创建新的 table
- 从临时文件中复制数据table
- 删除临时文件table
抱歉,这不是一个完整的答案,但如果我遇到你的情况,我会选择这个方向。
我遇到了同样的问题,发现 this article 这似乎是一个很好的解决方案。