在模型更改数据库之前,可以从表中保存数据吗?
例如,我重命名一列,不会丢失数据。因此,即我想从列c1获取所有数据,将我的列重命名为c2并将所有数据写回。
答案 0 :(得分:3)
以下是ORMLite documentation的引用:“您无法重命名或删除列或更改约束”。
所以你的选择是:
数据库升级总是紧张的事情(需要大量的错误处理,大量的测试),坦率地说,如果名称是唯一的东西与你有关,我会不管它(选项1) 。如果你确实需要更改它,那么选项2风险很低,但留下了一个“死”列和数据。例如,如果数据占整个数据库大小的很大一部分,则可以选择选项3。
答案 1 :(得分:0)
我想从列c1获取所有数据,将我的列重命名为c2并重新写入所有数据。
Sqlite不支持重命名列,因此在Android下无效。但是,您当然可以添加其他列。 Android / ORMLite下的架构更改有一些很好的文档。见本页:
例如,您可以执行以下架构更新:
dao.executeRaw(
"ALTER TABLE `account` ADD COLUMN hasDog BOOLEAN DEFAULT 0;");
dao.updateRaw("UPDATE `account` SET hasDog = 1 WHERE dogCount > 0;");