【Python】Django

2023-10-17 09:53:54 浏览数 (2)

数据表更改

Django 1.7.x 和后来的版本:

Django 1.7.x 及以后的版本集成了 South 的功能,在修改models.py了后运行:

代码语言:javascript复制
python manage.py makemigrations
python manage.py migrate

这两行命令就会对我们的models.py 进行检测,自动发现需要更改的,应用到数据库中去。

Django 1.6.x 及以前:

在Django 1.6以及以前的版本中,我们测试,当发现model要改,怎么办?

我们修改了 models.py 之后,我们运行:

代码语言:javascript复制
python manage.py syncdb

这句话只会将我们在 models.py 中新加的类创建相应的表。

对于原来有的,现在删除了的类,Django 会询问是否要删除数据库中已经存在的相关数据表。

如果在原来的类上增加字段或者删除字段,可以参考这个命令:

代码语言:javascript复制
python manage.py sql appname

给出的SQL语句,然后自己手动到数据库执行 SQL 。但是这样非常容易出错!

Django 的第三方 app South 就是专门做数据库表结构自动迁移工作,Jacob Kaplan-Moss 曾做过一次调查,South 名列最受欢迎的第三方 app。事实上,它现在已经俨然成为 Django 事实上的数据库表迁移标准,很多第三方 app 都会带 South migrations 脚本,Django 1.7 中集成了 South 的功能。

参考:

Django 数据表更改

0 人点赞