You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Django Model转换为DDL语句与SQL查询语句?

把Django Model转换为SQL语句的几种方法

一、使用Django内置命令

直接通过manage.py就能快速生成对应Model的SQL,适合快速验证:

  • 生成指定app下所有Model的建表SQL:
    python manage.py sql <你的app名称>
    
  • 生成指定迁移文件对应的SQL(适合已创建迁移的Model):
    python manage.py sqlmigrate <你的app名称> <迁移文件编号>
    

二、在Python代码中集成(适配你的CLI工具)

如果要在自己的CLI工具里动态获取SQL,需要先加载Django项目环境,再调用内置API生成:

  1. 配置Django环境,确保能导入项目的Model:
    import os
    import django
    
    # 替换为你的Django项目settings模块路径
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
    django.setup()
    
  2. 调用Schema编辑器生成建表SQL:
    from django.db import connection
    from myapp.models import MyModel  # 替换为你的目标Model
    
    with connection.schema_editor() as editor:
        # 获取创建该Model对应表的SQL语句
        create_table_sql = editor.create_model(MyModel)
        print(create_table_sql)
    
    要是需要处理多数据库,可指定数据库别名:
    from django.db import connections
    
    with connections['my_db_alias'].schema_editor() as editor:
        create_table_sql = editor.create_model(MyModel)
    

三、解析迁移文件提取SQL

每个Django迁移文件(migrations/下的.py文件)中记录了Model的变更操作,你可以解析这些文件里的operations字段,结合Django的迁移API生成对应SQL,但这种方式复杂度较高,一般推荐前两种方法。

内容的提问来源于stack exchange,提问作者Adrian Botteon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:07:09