[Django1.6]south于django1.6使用
south在django1.6中的使用
django1.7中已经支持数据合并了,所以仅仅能在django1.4 1.5 1.6的版本号中使用south。 south的主要作用就是做数据的合并,当我们在django中定义了一个模型之后,使用syncdb同步到数据库中。而后假设 改动了模型的字段。或者字段属性,在使用syncdb就不能够了。 这时候假设要迁移数据就须要又一次建库,把原始数据 迁移到新库,south能够帮您自己主动的完毕这些操作。 之前一直没怎么用过,如今用的django版本号还是1.6,近期的开发属于 模型不是非常稳定的时间,于是就拿来使用下.
说明
- django1.6
- win7
- 数据库 mysql 5.6
安装
使用pip安装
pip install south
假设是升级sourh(1.0应该是最后一版)
pip install south --upgrade
django中配置
1
在你的django项目的settings文件里加入一个新的app (INSTALLED_APPS配置项)
INSTALLED_APPS = (
...
'south',
)
2
然后在项目下使用 python manage.py shell 打开django的shell
In [1]: import south
假设没有错误,说明安装配置好了。
3
使用之前先要在数据库中同步south的须要的表。
python manage.py syncdb
此时数据库中已经多了south_migrationhistory这个表。
使用
这是一个已经开发的项目,非常多表和表结构已经建立好也是用syncdb同步到数据库中。
app的名称是 adsr。 有个模型为
class AdDailyReport(models.Model):
ad = models.ForeignKey(Ad, on_delete=models.PROTECT)
ddate = models.DateField(auto_now=False, auto_now_add=False, verbose_name=u'统计日期')
pv = models.IntegerField(default=0, verbose_name=u'展现量')
pc = models.IntegerField(default=0, verbose_name=u'点击量')
cost = models.DecimalField(null=True,max_digits=10, decimal_places=2, verbose_name=u'花费')
addtime = models.DateTimeField(auto_now_add=True)
初始化合并
south有自己主动也有手动的合并方式。这里我们使用自己主动的方式
在没有不论什么模型变化的时候,对现有初始化:
E:\hawk>python manage.py convert_to_south adsr
This application is already managed by South.
然后才干够和新的app models一样,改动,合并模式,应用合并.
改动模型
模型最后加入了一个记录更新时间的字段
updatetime = models.DateTimeField(auto_now=True)
south 改动模式,应用
E:\hawk>python manage.py schemamigration adsr --auto
给了一些提示
E:\hawk>python manage.py schemamigration adsr --auto
?
The field 'AdDailyReport.updatetime' does not have a default specified, yet i
s NOT NULL.
? Since you are adding this field, you MUST specify a default
?
value to use for existing rows. Would you like to:
?
1. Quit now, and add a default to the field in models.py
?
2. Specify a one-off value to use for existing columns now
? Please select a choice:
google下stackoverflow上的回答, 然后例如以下的操作
?
Please select a choice: 2
? Please enter Python code for your one-off default value.
? The datetime module is available, so you can do e.g. datetime.date.today()
>>> datetime.datetime.now()
+ Added field updatetime on adsr.AdDailyReport
Created 0002_auto__add_field_addailyreport_updatetime.py. You can now apply this
migration with: ./manage.py migrate adsr
这样就把新的数据模型生成了。然后是应用。
E:\hawk>python manage.py migrate adsr
把表变更和数据合并应用。这样就把新的表结构生成,而且自己主动迁移数据。
ref
本文出自 “orangleliu笔记本”博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/40394925
版权声明:本文orangleliu(http://blog.csdn.net/orangleliu/)原创文章。文章转载申报。
[Django1.6]south于django1.6使用的更多相关文章
- python之 centos6.7下 python 3.5.2、Django-1.9 安装
在linux6.5中已经自带了python 2 .python 2.6 ,并且yum程序使用的就是自带的python,所以系统自带的python不要随意卸载否则可能导致yum用不了. 测试环境:cen ...
- Cenos6.6 升级 python3.5.2 安装配置 django1.10
1 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum groupinstall 'Development Tools' yum install zl ...
- python之 centos6.7下 python 3.5.2 源码、Django-1.9 安装
在linux6.5中已经自带了python 2 .python 2.6 ,并且yum程序使用的就是自带的python,所以系统自带的python不要随意卸载否则可能导致yum用不了. 测试环境:cen ...
- Sphinx编译docs文档
在使用Python.Django的过程中,经常看到docs目录,里面存放着一些txt文本文件,也就是自带的一些帮助文档,里面有make.bat,在dos目录下直接执行make,给出的帮助是可以转换成H ...
- Django基础—1
一. Django的安装1. 查看已安装的Django的版本 进入到终端以及Python的交互模式 python3/ ipython32. 交互模式中输入import django ...
- virtualenv虚拟环境安装不同版本的django
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这 ...
- nginx+django+uwsgi
最近来了兴致,想搞一下django开发,so, 搭建一下环境 1.安装django,可能通过pip install 或者源码安装(因为环境是python2.6.6的环境,所以这里采用django 1 ...
- nginx_uWSGI_django_virtualenv_supervisor发布web服务器
nginx_uWSGI_django_virtualenv_supervisor发布web服务器 nginx 导论 123456789101112131415161718192021222324252 ...
- Django2.0使用
创建项目: 通过命令行的方式:首先要进入到安装了django的虚拟环境中.然后执行命令: django-admin startproject [项目的名称] 这样就可以在当前目录下创建一个项目了. 通 ...
随机推荐
- DataInputStream类readLong()引起的思考
今天无意中看了下jdk中的DataInputStream类,然后看到readLong()方法,如下: private byte readBuffer[] = new byte[8]; public f ...
- Android应用开发-小巫CSDN博客clientJsoup篇
Android应用开发-小巫CSDN博客clientJsoup篇 距上一篇博客已经过去了两个星期,小巫也认为很抱歉,由于在忙着做另外一个项目,差点儿抽不出空来,这不小巫会把剩下的博文全部在国庆补上.本 ...
- Golang初学者的资源整理
看了汪汪汪不是我的语言的GO语言零基础入门资料整理,个人感觉还不够全面,忍不住过来补充一些内容. 网站教程: GO语言编程 and GO语言开发2048 from 实验楼Go语言后台应用开发 form ...
- 文件下载-SpringMVC中測试
直接改动文件路径就能够.其它都不须要改动,帮助类已经为大家写好,可直接使用 1.Scroller: /** * 下载文件 * @author liupeng * @param request * @p ...
- Nagios经check_http监视web申请书server多个tomcat维修
怎么样nagios显示器tomcat,它是一个相对简单的和复杂的事情.简单是因为,只有监控的假设web应用服务器tomcat无论是服务正常进行,很简单.假设你要监视tomcat其他例子,例如连接数jv ...
- [置顶] Codeforces Round #197 (Div. 2)(完全)
http://codeforces.com/contest/339/ 这场正是水题大放送,在家晚上限制,赛后做了虚拟比赛 A,B 乱搞水题 C 我是贪心过的,枚举一下第一个拿的,然后选使差值最小的那个 ...
- hdu 4885 (n^2*log(n)推断三点共线建图)+最短路
题意:车从起点出发,每次仅仅能行驶L长度,必需加油到满,每次仅仅能去加油站或目的地方向,路过加油站就必需进去加油,问最小要路过几次加油站. 開始时候直接建图,在范围内就有边1.跑最短了,再读题后发现, ...
- BZOJ 2783 JLOI 2012 树 乘+二分法
标题效果:鉴于一棵树和一个整数s,问中有树木几个这样的路径,点和担保路径==s,深度增量点. 这一数额的输出. 思维:用加倍的想法,我们可以O(logn)在时间找点他第一n.因为点权仅仅能是正的,满足 ...
- 比較Swift与HDFS话Ceph本质(by quqi99)
作者:张华 发表于:2014-06-21版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) 作者将又 ...
- 完全合并C++面试题
C++面试题 1.是不是父母写了virtual 功能,假设子类重写它的功能不virtual ,也使多态性? virtual修饰符隐形遗传. private 还集成.问权限而已 virtual可加可不加 ...