最近对一个django项目进行修改,其中在models.py添加了新的字段,需要同步到数据库。
尝试使用
python manage.py syncdb
提示成功,但未对数据库进行任何操作,到数据库中查看,新字段并没有同步进来。
解决办法如下:
python manage.py shell
进入后
from django.db import connection
新建一个cursor,用于连接
cursor=conneciton.cursor()
下一步就可以进行对数据库的操作了,把在model中定义的量加入表中:
cursor.execute('ALTER TABLE table_name add port Integer default 0')
sql 语法:ALTER TABLE table_name add col_name col_type default ..
到这步已经添加完成
******************************************************************************************************************************
补充:
下面补充一下,如果在已有django项目里面新建一张表,该如何操作:
例如,在app下面models.py中新加一张表后,尝试使用
python manage.py syncdb
发现结果提示并没有新建的列表
此时,查看app目录下有没有migrations文件,如果存在,删除所有pyc文件和migrations文件。
删除后,再使用
python manage.py syncdb
此时应该可以进行同步了,新表会提示创建在数据库中