Chinaunix

标题: 程序升级,如何保证设置的数据不变 [打印本页]

作者: scounixadmin    时间: 2016-09-11 14:00
标题: 程序升级,如何保证设置的数据不变
当程序升级时,对应的设置项也会增加(也就是结构体新增加新的域),如何能保证数据不被破坏
例子:
typedef struct
{
    name
    sex
    age
} student_s;

升级后要变成
typedef struct
{
    name
    sex
    grade
    addr
    age
} student_s;


显然会破坏掉之前的数据。

有什么好办法(除了预留空间byte reserved[32]外)不破坏数据,又能增加功能

数据库也是这样,如果表格结构发生变化,好像只有导出数据到新的表格才可以

求最佳方法

作者: jason680    时间: 2016-09-12 18:29
data head: version = 1

typedef struct
{
    name
    sex
    age
} student_s;

----------------------------------

data head: version = 2

typedef struct
{
    name
    sex
    grade
    addr
    age
} student_s;
作者: evaspring    时间: 2016-09-12 20:10
? 数据库表结构改了写好升级sql 兼容老的表不就OK


作者: soft30    时间: 2016-09-13 00:09
你需要字段标识版本号, 程序首先判断版本号,  知道了版本号后是哪个版本就用哪种方式处理。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2