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值,也就是序列的当前值,有的时候,像某些配置数据的修改,可能需要修改这个序列。

Django1.6版本的PG数据库定义手动升级的更多相关文章

  1. PG数据库之间的导入导出

    本文将介绍如何对PG数据库进行导入.导出,主要利用的是PG自带的pg_dump.pg_dumpall.pg_restore.psql等命令,版本是9.4(不同版本的pg_dump \ pg_resto ...

  2. jeecg安装——mysql数据库创建+手动执行初始化脚本

    国产的开源项目官方文档写得那么详细,已经是很厚道了,可惜俺这种菜鸟还是会碰到各种"小"问题,做个笔记先! 1.新建数据库: CREATE DATABASE jeecg DEFAUL ...

  3. 数据库 定义 bit 类型 (true=1,false=0)

    当Sql Server数据库定义 数据 为 bit 类型时, 编写代码时 要用 true or false 赋值. 例如: OffTheShelf  定义类型为  bit 后台赋值时 OffTheSh ...

  4. MySQL数据库定义与操作语言

    文章为作者原创,未经许可,禁止转载.    -Sun Yat-sen University 冯兴伟 实验1.1 数据库定义 (1)实验目的 理解和掌握数据库DDL语言,能够熟练地使用SQL DDL语句 ...

  5. Qt5.8以上版本编译Oracle数据库的OCI驱动教程

    在前一篇的文章中我已经发过一个相似的文章,详情请点击:Qt5编译oracle驱动教程. 在那一篇文章中已经可以解决了Qt5的常用版本的Oracle数据库驱动的支持,但是在新的Qt开发工具中那种方法竟然 ...

  6. Django2.0版本 path与Django1.x版本url正则匹配问题

    Django1.x版本url正则匹配如下: Django2.0版本正则匹配则要导入re_path模块如下:

  7. MySQL JDBC驱动版本与MySQL数据库版本对应关系

    前言:前段时间发现在家使用和公司一样的mysql jdbc驱动版本发生了异常,原因:家里mysql数据库版本与公司不一致导致.查询了相关资料,发现mysql jdbc驱动版本与mysql数据库版本有一 ...

  8. 使用patroni 解决hasura graphql-engine pg 数据库ha的问题

    环境准备 机器pg 数据库地址修改为haproxy 的ip地址,端口是haproxy的tcp 端口,配置比较简单 hasura graphql-engine docker-compose versio ...

  9. pg数据库表接口和数据导出

    导出命令 pg_dump -U postgres --inserts -t human_info > D:\human_info_backup.sql testdb 命令说明 pg_dump:是 ...

随机推荐

  1. Html标签中thead、tbody、tfoot的作用

    Html标签中thead.tbody.tfoot的作用 为了让大表格(table)在下载的时候可以分段的显示,就是说在浏览器解析HTML时,table是作为一个整体解释的,使用TBODY可以优化显示. ...

  2. 分布式进阶(八)Linux提示Unable to locate package该如何处理?

    Linux提示Unable to locate package该如何处理? 当你在修改Linux软件源的时候,提示Unable to locate package错误,这是由什么原因导致的呢?又该如何 ...

  3. 生成1~n的排列,以及生成可重集的排列

    #include <iostream> using namespace std; void printPermutation(int n, int* A, int cur) { if (c ...

  4. java的输出类

    System.out这个类是PrintStream类,定义如下 public class PrintStream extends FilterOutputStream PrintStream都是用pr ...

  5. 数据结构基础(3) --Permutation & 插入排序

    Permutation(排列组合) 排列问题: 设R = {r1, r2, ... , rn}是要进行排列的n个元素, Ri = R-{ri}; 集合X中元素的全排列记为Permutation(X), ...

  6. Windows7 64位机上,OpenCV中配置CUDA,实现GPU操作步骤

    原文地址:http://blog.csdn.net/haorenka2010/article/details/24385955 按语:首先感谢http://blog.csdn.net/fengbing ...

  7. GRUB与Linux系统修复(第二版)

    GRUB配置解析 配置文件保存在 /boot/grub/grub.conf[/boot分区最好应该单独划分出来] 软链接保存在 /etc/grub.conf 1.grub.conf文件分析 defau ...

  8. 《java第一季之入门篇》的想法

    学习java也有一段时间了,但是考虑到自己现在上课.复习.考试等耗费很多时间,感觉没有静下心来的时间去写一个长期的博客.计划今年7月1号开始写一套关于java的入门篇博客文章,入门篇计划这样--涵盖j ...

  9. boost pool_allocator 报错 'rebind'

    #include "stdafx.h" #include <vector> #include <boost/pool/pool.hpp> int _tmai ...

  10. zookeeper 应用开发

    由于zookeeper的client只有zookeeper一个对象,使用也比较简单,所以就不许要文字说明了,在代码中注释下就ok 了. 1.测试用的main方法 package ClientExamp ...