Chinaunix首页 | 论坛 | 博客
  • 博客访问: 446722
  • 博文数量: 481
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1040
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-06 14:09
文章分类

全部博文(481)

文章存档

2013年(483)

我的朋友

分类: 系统运维

2013-03-03 13:56:04

环境:Django 1.4 DB engine:sqlite3 

Django 当前版本syncdb只在新建models时能自动生成数据库。

但开发时偶尔需要修改数据库结构的情况,比如:添加字段、修改字段等。这时候,syncdb就不好用了。

常见的办法分两类:1、删除整个数据库,重新syncdb;
2、或者手工修改数据库。

两者都需要执行sql命令,如果没有数据库的管理界面,可以使用django的数据库执行命令。

> python manage.py shell
>>> from django.db import connection, transaction
>>> cursor = connection.cursor()
>>> cursor.execute("alter table saying_saying add lang varchar(10) NOT NULL default en ")
>>> transaction.commit_unless_managed()

另一个方法也很简单。
使用 manager.py 的sql类的命令输出sql语句,然后使用dbshell命令调用数据库管理命令行。
如:
python manage.py sql XXX
python manage.py dbshell
>  alter table saying_userprofile add "reputation" integer NOT NULL default 1;


参考:Django-1.4Doc/topics/db/sql.html#executing-custom-sql-directly

阅读(878) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~