如何使 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 COLUMN
在 SQLite
中是不可能的。
仅支持的更改操作:
- 更改Table名称
- 更改Table列名称
- 添加新列
- 删除列
参考:
- Sqlite Alter Table
- Alter column in sqlite
我正在使用 GRDB
进行本地持久化。
在 Item
table 中创建了一个具有以下约束的列。
table.column(Item.CodingKeys.text.rawValue, .text).notNull()
现在我想将其更改为也支持可选值。
table.column(Item.CodingKeys.text.rawValue, .text)
但是为了迁移,我不能改变它属性。该列只有 add, rename
个可用。
我应该采取什么方法来正确迁移,同时保持向后兼容性?
ALTER COLUMN
在 SQLite
中是不可能的。
仅支持的更改操作:
- 更改Table名称
- 更改Table列名称
- 添加新列
- 删除列
参考:
- Sqlite Alter Table
- Alter column in sqlite