Django数据库迁移
如果你用过Django的数据库就会发现一个比较令人纠结的地方:数据库更改。
我们知道添加或者删除一个models.Model 需要在数据库里相应的操作,这需要我们进入数据库命令行手动添加或删除,因为syncdb命令无法进行数据库的更改只能进行更新操作。手动修改过于麻烦,也许更残忍的方法就是直接删除整个database,然后重新建立一个database,这个方法对于项目初期尚可以。
但是幸运的是,我们有south来完成数据库的迁移。
下载安装:
easy_install south
设置:
把south 放进 settings.py 里的 INSTALLED_APPS
执行 syncdb 命令
我们看到一个信息 Creating table south_migrationhistory 顾名思义 我们知道生成了一个记录migration历史的表。
我们把自己的app (本文是blog)加入到Migration中去
执行 python manage.py convert_to_south blog
可以看到 我们在blog文件夹里自动生成了migrations文件夹,里面存放着 迁移文件0001_initial.py 。
好了,到现在我们可以随意修改model了,哈哈 。
如果你修改了model,首先执行 python manage.py schemamigration yourapp --auto,然后就会生成一个0002_auto__xxxx.py文件
但是这还没有修改到数据库,我们再执行 python manage.py migrate yourapp 就一切OK了。
上面的功能对于一般情况的使用已经足够了,接下来我们讲一讲其他的功能:
convert_to_south命令只能够使用在你所运行这一命令的第一台机器上,如果你把服务器部署在你的 VCS,你需要在每一台有你的codebase的机器(确保你已经升级了model 和scheme 表)上执行命令 manage.py migrate myapp 0001 --fake 只有这样你的下一步迁移才会正确执行。
由于时间关系,其他的功能以后再做讨论,
Django数据库迁移的更多相关文章
- Django 数据库迁移
Django 数据库迁移 DATABASES = { # Django默认配置使用sqlite3数据库 # 'default': { # 'ENGINE': 'django.db.backends.s ...
- django数据库迁移时候异常
django数据库迁移时候异常 一.错误信息 Django在根据models生成数据库表时报 init() missing 1 required positional argument: 'on_de ...
- 关于django数据库迁移 以及显示未检测到更改的问题
No changes detected 显示这样的原因 数据库迁移代码步骤: 今天在所有数据库的时候对数据库进行了删除,重新迁移数据库映射,但是却发现终端给出了这样的信息. '>>> ...
- django数据库迁移相关【sqlite3迁移到MySQL】(django2.0.3测试通过)
前言 项目部署到服务器之后,用的数据库还是sqlite3. 发现一些问题,sqlite3是小巧,但是服务器上查看数据库比较费劲,不能直观看到数据.可是我们经常需要即时.直观查看数据,这就用到MySQL ...
- django数据库迁移报错
当输入C:\Users\太阳之泪\b2p\my_pro>python manage.py makemigrations shop 出现一下情况 然后输入C:\Users\太阳之泪\b2p\my_ ...
- django数据库迁移-15
目录 1.迁移 1.生成迁移文件 2.执行迁移命令 添加测试数据 1.迁移 创建完模型类后,并没有真正的在数据库中创建了数据表,需要执行迁移命令,在数据表中创建数据表. 1.生成迁移文件 manage ...
- django中的数据库迁移
Django是用python写的web开发框架,其特点是: 1.重量级框架,内部封装了很多的功能组件,使开发变的简便快速, 2.MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能 ...
- django 数据库配置 ,APP 迁移.模型基础
# 1.数据库的连接配置django 连接mysql的配置流程:- 安装 pymysql pip install pymysql- 创建数据库用户有创建数据库权限的用户- 创建数据库crm .进入数据 ...
- 【Django】依赖auth.user的数据库迁移,以及admin用户非交互式创建
admin用户非交互式创建: echo "from django.contrib.auth.models import User; User.objects.create_superuser ...
随机推荐
- EF调用sp,EF自动生成返回类型
在sp中添加下面的红色部分,就是执行sp时的返回类型,后面在EF中添加该sp后,EF会在DBContext文件中,自动生成调用该sp的代码,包括返回类型等,如下: public virtual Obj ...
- DES加密和解密PHP,Java,ObjectC统一的方法
原文:DES加密和解密PHP,Java,ObjectC统一的方法 PHP的加解密函数 <?php class DesComponent { var $key = '12345678'; func ...
- Nyoj 修路方案(次小生成树)
描述 南将军率领着许多部队,它们分别驻扎在N个不同的城市里,这些城市分别编号1~N,由于交通不太便利,南将军准备修路. 现在已经知道哪些城市之间可以修路,如果修路,花费是多少. 现在,军师小工已经找到 ...
- 栈 <stack>
STL: pop:完成的仅仅是移除最顶端的数据.如果访问最顶端的数据,需要使用top函数(这个操作通常也被称为peek). #include <stack> #include <cs ...
- ASPNETPager常用属性
<webdiyer:AspNetPager ID="pager" runat="server" class="page" FirstP ...
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
1.错误叙述性说明 2014-7-12 0:38:57 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplica ...
- 也许游戏 它P/N图分析
关于游戏的问题,更多的时候是使用P/N图分析 p n p n p n p n n n n n n n n n p n p n p n p n n n n n ...
- asp.net [AjaxMethod]
AjaxPro.2.dll cs 代码 using AjaxPro; Utility.RegisterTypeForAjax(typeof(BOMdr_KT)); [Ajax.AjaxMethod() ...
- asp.net 操作XML
using System.Xml; using System.Data; using System.IO; string xmlpath = HttpRuntime.AppDomainAppPat ...
- monoTouch for android visual studio c#开发
本人 c# 程序员,第一次配置环境 按照此流程安装 http://www.wuleba.com/18892.html 本次下载的 8 个安装程序,我是安装以上顺序安装的,分别标志为1至8,暂时不 ...