当我对某些模型进行更改时,我想查看django将运行的SQL以在数据库上实现这些更改.
这样做的正常方法是"makemigrations appname".这将产生一个迁移,比如说,'0001_someName.py'.然后可以做'sqlmigrate 0001_someName.py'
但我想直接查看sql,而不必创建中间迁移.可以这样做吗?
Ami*_*rma 53
python manage.py sqlmigrate <appname> <migration no eg. 0001 or 0004>
Run Code Online (Sandbox Code Playgroud)
这将显示用于特定应用程序迁移的SQL语句.但是如果你想显示特定应用程序的所有sql,请使用:
python manage.py sqlmigrate <appname>
Run Code Online (Sandbox Code Playgroud)
这些现有的答案是不够的,因为我发现尝试遵循它们。首先检测并为您的应用程序制作迁移脚本:
manage.py makemigrations app
Run Code Online (Sandbox Code Playgroud)
记下文件名开头的四位数迁移编号。然后打印 SQL:
manage.py sqlmigrate app 0002 # <-- number here
Run Code Online (Sandbox Code Playgroud)
完成后,在运行或提交之前删除该文件:
rm app/migrations/0002_auto_8675309.py
Run Code Online (Sandbox Code Playgroud)
跑
python manage.py sql <appname>
Run Code Online (Sandbox Code Playgroud)
-打印给定应用程序名称的CREATE TABLE SQL语句。
python manage.py sqlall <appname>
Run Code Online (Sandbox Code Playgroud)
-打印给定应用程序名称的CREATE TABLE和初始数据SQL语句。
您可以在此处找到详细的文档。 https://docs.djangoproject.com/zh-CN/1.8/ref/django-admin/
| 归档时间: |
|
| 查看次数: |
22505 次 |
| 最近记录: |