环境: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
阅读(925) | 评论(0) | 转发(0) |