如何使 SQlite 数据库 table 中的现有非可选字段成为可选字段?

What to do to make an existing non-optional field optional in database table in SQlite?

我正在使用 GRDB 进行本地持久化。

Item table 中创建了一个具有以下约束的列。

table.column(Item.CodingKeys.text.rawValue, .text).notNull()

现在我想将其更改为也支持可选值。

table.column(Item.CodingKeys.text.rawValue, .text)

但是为了迁移,我不能改变它属性。该列只有 add, rename 个可用。

我应该采取什么方法来正确迁移,同时保持向后兼容性?

ALTER COLUMNSQLite 中是不可能的。

仅支持的更改操作:

  • 更改Table名称
  • 更改Table列名称
  • 添加新列
  • 删除列

参考: