首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Django中的非托管模型安装自定义SQL

问如何为Django中的非托管模型安装自定义SQL
EN

Stack Overflow用户
提问于 2015-06-24 15:56:51
回答 1查看 222关注 0票数 1

一个简单的问题是,Django是否可以安装标记为非托管的模型的自定义sql?

我已经定义了自定义sql文件,并将其放在必要的目录中,如django文档所示:

Django提供了一个钩子,用于传递数据库任意SQL,在运行迁移时在CREATE语句之后执行该SQL。您可以使用此钩子填充默认记录,也可以创建SQL函数、视图、触发器等。 钩子很简单: Django只是在应用程序目录中查找一个名为sql/“model name”.sql的文件,其中“model name”是模型的小写名称。

src:https://docs.djangoproject.com/en/1.8/howto/initial-data/#providing-initial-sql-data

问题是,当模型被标记为“Managed= False”时,它无法工作。

就我而言,django只是在CREATE语句后面加上来自自定义sql文件的内容。它解释了创建语句不存在时的行为。

但是Django可以执行我的自定义sql吗?

我的非托管模型是数据库视图的模型,我尝试用这个自定义sql创建该模型。我希望Django在运行"manage.py迁移“时自动运行这个sql。

我对将sql代码放入迁移文件并不感兴趣,因为它很长,我希望保留在sql文件中。

我使用Django 1.8。

EN

回答 1

Stack Overflow用户

发布于 2016-03-09 01:05:43

如果您正确命名您的文件,它将在每次运行manage.py syncdb时执行。

但是,文件的命名有点棘手,而且从文档中看也不清楚。例如,如果在运行在MyModel上的名为MyApp的应用程序中有一个名为MySQL的非托管模型,那么应该有一个位于myapp/sql/mymodel.mysql.sql中的文件。

另外,如果该文件包含一个SQL视图,则该视图必须使用类似于myapp_mymodel的格式命名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31031349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档