比如我使用sqlite3数据库,用户安装应用时会创建db,用来存储一些个人的数据。
某一天我想给数据库增加一个表或者某张表增加列。
那么新的程序就要考虑:用户覆盖安装,全新安装的情况。
创建数据库就要if not exist Db1 create database Db1,
创建表也要if not exist create table users;
全新安装要创建新格式的数据库,老用户覆盖安装时就得额外增加表或者列。
而不是直接create database Db1,create table users,这样老用户覆盖安装时由于存在同名的表,导致创建失败,不能升级到新格式的数据库。
这是我痛恨的旧数据问题,它让我的代码看起来不美了。