代码之家  ›  专栏  ›  技术社区  ›  dlamotte

阻止syncdb更新Django中的数据库?

  •  3
  • dlamotte  · 技术社区  · 15 年前

    我想把数据库看作是“只读”的,永远不要写。有没有一种方法可以很容易地阻止syncdb检查更新数据库?

    有了django1.2和拥有多个数据库的能力,它希望能够查询数据库中的信息。我再也不需要写那个数据库了。

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

    抱歉,我需要能够同步中的一个数据库设置.py,只是不是这个具体的。

    3 回复  |  直到 15 年前
        1
  •  4
  •   dlamotte    15 年前

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

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

    def allow_syncdb(self, db, model):
         ...
    

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

        2
  •  1
  •   Daniel Roseman    15 年前

    syncdb ,别跑了,就这么简单。更新数据库就是它所做的,所以如果你不需要它,你不应该运行它-它不做任何其他事情。

    然而,如果你真的在问如何阻止syncdb运行,一种可能是在你的应用程序中定义一个“虚拟”syncdb命令。跟随 custom management command instructions 但只要把 pass 在命令的内部 handle 方法。Django总是首先找到您的命令版本,使其成为不可操作的。

        3
  •  0
  •   hobs axoplasm    10 年前

    我在使用microsofsqlserver数据库(uhhg)的只读镜像时遇到了这个问题。既然你不能有选择地跑 syncdb 在单个应用程序或数据库上。但你呢 同步数据库 当您第一次创建一个新的Django项目或安装一个需要它的新应用程序时(比如 south 同步数据库 认为south正在处理这些应用程序的db设置 南方 不会对他们做任何事!

    manage.py schemamigration ap_with_read_only_database --empty initial_empty_migration_that_does_nothing
    

    这样您就可以在django之外自由地管理该db的模式。