django修改models.py后同步更新到数据库
2014-05-17 12:01
691 查看
一般在django项目的models.py中写了新的数据库类以后,都用:
python manage syncdb
来同步生成数据库。
但是如果修改了已同步的数据库类,则此命令无效。
django的设计原则是,对于包含数据的表的维护,一般是手工来做的。
虽然django有一个命令:
django-admin.py
reset appname
手动修改数据库时,有三种方法:
1.直接mysql –u root –p登录mysql,找到相应数据库,修改表。
2.manage.py有一个dbshell(传送门):
它会根据settings.py中的数据库设置,选择相应数据库并使用帐号密码登录。
然后可以:
alter table [tablename] add column [columnname] [columntype];
eg:alter
table weblog add column tag varchar(30);
« 整合Syntax
Highlighter到django应用程序中
Django后台整合TinyMCE富文本编辑器 »
Django 如果 Model裡面的欄位有更動時,即使執行
預設也是不會去更動Database的Table的。在這StackOverflow討論串有提到像是用 South等Migration
Tool,但如果Model只是新增一些Optional的欄位時,這真的是用牛刀了。裡面有提到另一個方法,我覺得還不錯簡單,在此記錄一下:
先用
.json 的格式。要注意的事,這時侯 model.py 必需是舊的 schema
然後 reset app 的 db
最後再把 json 格式的 data 載入回來即可
python manage syncdb
来同步生成数据库。
但是如果修改了已同步的数据库类,则此命令无效。
django的设计原则是,对于包含数据的表的维护,一般是手工来做的。
虽然django有一个命令:
django-admin.py
reset appname
但是此命令会清空数据表内容。
手动修改数据库时,有三种方法:
1.直接mysql –u root –p登录mysql,找到相应数据库,修改表。
2.manage.py有一个dbshell(传送门):
它会根据settings.py中的数据库设置,选择相应数据库并使用帐号密码登录。
然后可以:
alter table [tablename] add column [columnname] [columntype];
eg:alter
table weblog add column tag varchar(30);
3.可以python manage.py shell,然后使用django提供的数据库操作来解决。 其他方法: http://blog.codylab.com/django-update-model/
« 整合Syntax
Highlighter到django应用程序中
Django后台整合TinyMCE富文本编辑器 »
4 Responses to “django修改models.py后同步更新到数据库”
Django 如果 Model裡面的欄位有更動時,即使執行> python manage syncdb
預設也是不會去更動Database的Table的。在這StackOverflow討論串有提到像是用 South等Migration
Tool,但如果Model只是新增一些Optional的欄位時,這真的是用牛刀了。裡面有提到另一個方法,我覺得還不錯簡單,在此記錄一下:
先用
dumpdata這個指令把DB的資料先輸出成
.json 的格式。要注意的事,這時侯 model.py 必需是舊的 schema
> python manage.py dumpdata <your_app> > temp_data.json
然後 reset app 的 db
> python manage.py reset <your_app>
最後再把 json 格式的 data 載入回來即可
> python manage.py loaddata temp_data.jso
相关文章推荐
- 玩转SSH--Hibernate(三)---手动修改数据库,前台查询信息不同步更新问题解决方法
- django修改models重建数据库
- python-Django models.py新建的表如何同步到数据路(八)
- Django中的数据库模型类-models.py(多对多的关系)
- 浅谈Django中的数据库模型类-models.py(一对一的关系)
- Django1.9 models数据库同步问题
- Django中的数据库模型类-models.py(一对一的关系)
- django1.11.1 models 数据库同步
- SAE如何线上执行Django的“manage.py syncdb”来同步数据库
- Django1.9 models数据库同步问题
- 第三百零八节,Django框架,models.py模块,数据库操作——链表结构,一对多、一对一、多对多
- 第三百零九节,Django框架,models.py模块,数据库操作——F和Q()运算符:|或者、&并且——queryset对象序列化
- Django修改model如何同步数据库
- 如何在django中使用models.py对数据库进行操作
- 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查
- Django models.py编辑后更新
- django models 增加字段(或新表)后如何同步到数据库
- models.py---Django中的数据库模型
- Django 修改model后同步修改数据库
- django1.11.1 models 数据库同步方法