首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >防止syncdb更新Django中的数据库?

防止syncdb更新Django中的数据库?
EN

Stack Overflow用户
提问于 2010-08-13 13:28:38
回答 3查看 532关注 0票数 3

我想尊重数据库作为一个“只读”,从来没有写信给它。是否有一种方法可以轻松地防止syncdb甚至干扰检查以更新数据库?

使用Django 1.2和拥有多个数据库的能力,它希望能够查询数据库中的信息。我根本不需要写到那个数据库。

但是,如果syncdb运行并试图更新该数据库,我会感到害怕(因为我可能在技术上没有该数据库的只读帐户)。主要是,我只想使用/滥用Django ORM作为查询数据库的一种方式。

更新:对不起,我需要能够同步settings.py中的一个数据库,而不是这个特定的数据库。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-13 14:08:38

呵呵,我想我会回答我自己的问题(RTFM!)

http://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def allow_syncdb(self, db, model):
     ...

这是一个明确的开始..。

票数 4
EN

Stack Overflow用户

发布于 2010-08-13 13:36:22

如果您不需要syncdb,就不要运行它,就像这样简单。更新数据库就是它所做的,所以如果您不需要它,就不应该运行它--它不会做任何其他事情。

但是,如果您实际上是在询问如何防止syncdb运行,一种可能是在您的应用程序中定义一个“虚拟”syncdb命令。遵循自定义管理命令指令,但只需将pass放入命令的handle方法。Django将始终首先找到命令的版本,使其成为一个no-op。

票数 1
EN

Stack Overflow用户

发布于 2014-09-22 11:01:27

在使用数据库(uhhg)的只读镜像时,我遇到了这个问题。因为您不能有选择地在一个应用程序或数据库上运行syncdb。但是,当您第一次创建一个新的Django项目或安装一个需要它的新应用程序时,您必须运行syncdb (比如south)。我所做的就是将我的只读数据库放在自己的Django应用程序中,然后向该应用程序添加一个空的南方迁移。通过这种方式,syncdb认为南方正在为这些应用程序处理db设置,而south没有对它们做任何事情!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
manage.py schemamigration ap_with_read_only_database --empty initial_empty_migration_that_does_nothing

这使您可以在django之外管理该db的架构。

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

https://stackoverflow.com/questions/3480786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文