0

所以我阅读了https://docs.djangoproject.com/en/dev/topics/db/multi-db/上的多个数据库文档,它很有帮助。我知道了如何在 setting.py 中显示第二个数据库以及如何通过命令提示符同步它。但我不知道如何指定如何使某个模型同步到/保存在第二个数据库中。特别是如果我没有明确说明。

喜欢用户。

如果我使用 django 的用户类来创建用户,那么如何将其保存到第二个数据库中?

4

2 回答 2

1

(直接来自 Django DOCS 的代码:https ://docs.djangoproject.com/en/dev/topics/db/multi-db/#automatic-database-routing

路由器处理应该在哪个数据库中获取或设置数据。

如果您想要一个用于您的应用程序的路由器(名为“myapp”)

class MyAppRouter(object):
        """A router to control all database operations on models in
        the myapp application"""

        def db_for_read(self, model, **hints):
            "Point all operations on myapp models to 'other'"
            if model._meta.app_label == 'myapp':
                return 'other'
            return None

        def db_for_write(self, model, **hints):
            "Point all operations on myapp models to 'other'"
            if model._meta.app_label == 'myapp':
                return 'other'
            return None

        def allow_relation(self, obj1, obj2, **hints):
            "Allow any relation if a model in myapp is involved"
            if obj1._meta.app_label == 'myapp' or obj2._meta.app_label == 'myapp':
                return True
            return None

        def allow_syncdb(self, db, model):
            "Make sure the myapp app only appears on the 'other' db"
            if db == 'other':
                return model._meta.app_label == 'myapp'
            elif model._meta.app_label == 'myapp':
                return False
            return None

通过向 settings.py 添加下一行,所有“myapp”应用程序数据都将在其自己的数据库(名为“其他”)中创建/保存/处理。所有其余的应用程序都使用默认数据库。

DATABASE_ROUTERS = ['path.to.MyAppRouter']

路由器可以保存在您想要的任何地方。只需修复 settings.DATABASE_ROUTERS 的路径即可。

于 2012-04-18T20:00:42.387 回答
1

请再次仔细阅读您提供的文档。文档的自动数据库路由部分准确地回答了您的问题。
User DB的路由取决于你的实际使用情况和分区策略,没有一句回答。用户文档中有示例,您可以阅读并检查本地计算机。

于 2012-04-18T07:57:27.837 回答