本文主要是介绍django1.9 实现模型变更三步走,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
django与数据库同步,Django_book_2中提到python manage.py syncdb即可。本人下载django版本为1.9.7:
tust@tust:~$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:38)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 9, 7, 'final', 0)
执行此命令提示没有次命令:
tust@tust:~/djcode/mysite$ python manage.py syncdb
Unknown command: 'syncdb'
Type 'manage.py help' for usage.
查看Django中文文档, 内容如下:
实现模型变更的三个步骤:修改你的模型(在models.py文件中)。运行python manage.py makemigrations ,为这些修改创建迁移文件运行python manage.py migrate ,将这些改变更新到数据库中。
实测如下:(自建app模块名称为books,建好model后)
1.生成漂移文件。
tust@tust:~/djcode/mysite$ python manage.py makemigrations books
Migrations for 'books':0001_initial.py:- Create model Author- Create model Book- Create model Publisher- Add field publisher to book
2.同步到数据库
tust@tust:~/djcode/mysite$ python manage.py migrate
Operations to perform:Apply all migrations: admin, contenttypes, books, auth, sessions
Running migrations:Rendering model states... DONEApplying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying books.0001_initial... OKApplying sessions.0001_initial... OK
查看相应数据库,发现已将模型同步到数据库,具体数据库内容不再赘述。
另注:
可用一下命令查看漂移文件对应的sql脚本( python manage.py sqlmigrate + app_name + 漂移文件)
python manage.py sqlmigrate books 0001其中,sqlmigrate命令并不会在你的数据库上真正运行迁移文件 —— 它只是把Django 认为需要的SQL打印在屏幕上以让你能够看到。 这对于检查Django将要进行的数据库操作或者你的数据库管理员需要这些SQL脚本是非常有用的。
这篇关于django1.9 实现模型变更三步走的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!