Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32466
  • 博文数量: 6
  • 博客积分: 302
  • 博客等级: 二等列兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-14 19:59
文章分类
文章存档

2012年(6)

我的朋友

分类: 系统运维

2012-05-21 22:36:23

环境: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

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

li_qun2012-05-26 19:30:13

最乖啦啦: 请问web.py与django,那个更好?.....
没有接触过web.py 不好评说啊,呵呵

最乖啦啦2012-05-23 11:34:49

请问web.py与django,那个更好?