我想尊重数据库作为一个“只读”,从来没有写信给它。是否有一种方法可以轻松地防止syncdb甚至干扰检查以更新数据库?
使用Django 1.2和拥有多个数据库的能力,它希望能够查询数据库中的信息。我根本不需要写到那个数据库。
但是,如果syncdb运行并试图更新该数据库,我会感到害怕(因为我可能在技术上没有该数据库的只读帐户)。主要是,我只想使用/滥用Django ORM作为查询数据库的一种方式。
更新:对不起,我需要能够同步settings.py中的一个数据库,而不是这个特定的数据库。
发布于 2010-08-13 14:08:38
呵呵,我想我会回答我自己的问题(RTFM!)
http://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example
def allow_syncdb(self, db, model):
...
这是一个明确的开始..。
发布于 2010-08-13 13:36:22
如果您不需要syncdb
,就不要运行它,就像这样简单。更新数据库就是它所做的,所以如果您不需要它,就不应该运行它--它不会做任何其他事情。
但是,如果您实际上是在询问如何防止syncdb运行,一种可能是在您的应用程序中定义一个“虚拟”syncdb命令。遵循自定义管理命令指令,但只需将pass
放入命令的handle
方法。Django将始终首先找到命令的版本,使其成为一个no-op。
发布于 2014-09-22 11:01:27
在使用数据库(uhhg)的只读镜像时,我遇到了这个问题。因为您不能有选择地在一个应用程序或数据库上运行syncdb
。但是,当您第一次创建一个新的Django项目或安装一个需要它的新应用程序时,您必须运行syncdb
(比如south
)。我所做的就是将我的只读数据库放在自己的Django应用程序中,然后向该应用程序添加一个空的南方迁移。通过这种方式,syncdb
认为南方正在为这些应用程序处理db设置,而south
没有对它们做任何事情!
manage.py schemamigration ap_with_read_only_database --empty initial_empty_migration_that_does_nothing
这使您可以在django之外管理该db的架构。
https://stackoverflow.com/questions/3480786
复制相似问题