Django1.7以后添加了migration功能,数据库定义的升级完全实现自动化,之前是通过一个叫south的app来做的。这篇文章谈一下1.6下的手动更新升级。
1、table create和table delete操作,万幸的是Django即便是旧版本,其table的添加删除,其syncdb命令也可以识别出来。
2、field add和field remove 这两个操作得自己手动来。一般定义名称、类型、非空这些基本属性,因为Django的model会默认增加主键,所以像主键字段的序列这种比较麻烦的定义就不用自己来了,但是像外键约束、索引啊这些东西有的时候还需要自己手动添加。外键约束的名字和索引的名字最好参考Django的命名方式,防止数据库内命名冲突。
3、修改主键序列,为表递增ID主键建立独立的序列是PG数据库的做法,这个序列是可以修改的,最主要的修改我觉得可能就是当前最大ID值,也就是序列的当前值,有的时候,像某些配置数据的修改,可能需要修改这个序列。