scounixadmin 发表于 2016-09-11 14:00

程序升级,如何保证设置的数据不变

当程序升级时,对应的设置项也会增加(也就是结构体新增加新的域),如何能保证数据不被破坏
例子:
typedef struct
{
    name
    sex
    age
} student_s;

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


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

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

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

求最佳方法

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

你需要字段标识版本号, 程序首先判断版本号,知道了版本号后是哪个版本就用哪种方式处理。
页: [1]
查看完整版本: 程序升级,如何保证设置的数据不变