【问题标题】:Get SQL schema for django models获取 django 模型的 SQL 模式
【发布时间】:2013-08-20 17:45:34
【问题描述】:

在 Django 项目中,执行 manage.py sql APPNAME 会打印出模型的架构。

但是当模型和视图被分成几个*_models.py*_views.py时怎么办呢?

我正在开发一个平面的单页应用程序,它在很大程度上依赖于 javascript 来进行事件操作和处理。为了便于关注点分离,我将模型和视图文件拆分为auth_*dashboard_*taxonomy_* 文件。如何获取这些文件的模型架构?

【问题讨论】:

  • 您应该使用 REST 框架并担心 JSON,ORM 的全部意义在于(几乎)不必考虑 SQL。作为奖励,Django Rest 框架将为您提供更细粒度的访问控制、分页和节流。
  • 除非您不得不担心在 South 未涵盖的情况下从现有数据库架构迁移到新的数据库架构。
  • 在 South 未涵盖的情况下进行数据库迁移时,您可能不得不求助于您的数据库 shell,它已经提供了用于列出和转储表结构的规定(或调用 DBA)。
  • 是的,但从 Django 模型中执行此操作会更方便。现有数据库有大约 50 多个表,其中我使用了大约 30 个。通过表名进行转储会很乏味,我正在寻找替代方法

标签: django django-models


【解决方案1】:

即使您将模型拆分为多个文件,您仍然需要在您的应用中创建一个“模型”包,项目结构可能是,

--app
----models
------__init__.py

init.py中,需要导入模型类并设置成全局变量,可以手动也可以动态,例如,

from auth_* import XXXModel
current_global = globals()
current_global[XXXModel.__name__] = XXXModel

然后,python manage.py sql 可以找到模型模式。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-04-05
  • 2011-11-29
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
相关资源
最近更新 更多