Flutter-如何在Sqflite中更新表结构?

时间:2019-01-08 16:29:30

标签: dart flutter sqflite

我的应用程序正在生产中,我想在用户更新应用程序时管理用户数据,而不会丢失其数据,我该如何使用sqflite来实现这一点。明确地说,我想添加一列,然后删除另一列。

2 个答案:

答案 0 :(得分:1)

您可能可以add a column使用原始sql,但是sqlite(因此sqflite)不支持删除列。为此,您需要执行以下操作:

  • 增加数据库版本号
  • onUpgrade中将旧数据库列复制到临时表中
  • 删除原始表
  • 使用原始表名创建一个新表,但使用正确的模式
  • 从临时表中复制数据
  • 删除临时表

对不起,这不是一个完整的答案,但这是我在您遇到的情况下应该走的方向。

答案 1 :(得分:0)

我遇到了同样的问题,发现this article似乎是一个很好的解决方案。