【问题标题】:Django - Using multiple databases, one for each clientDjango - 使用多个数据库,每个客户端一个
【发布时间】:2023-03-09 17:03:01
【问题描述】:

我正在为现有的网络应用程序构建一个配套的网络/移动应用程序。该数据库在 MySQL 中实现。我将使用 Django/Django Rest Framework (DRF) 编写 API。

该应用程序被各种组织使用。关于实现的有趣部分是每个组织都有自己的数据库。在现有的 Web 应用程序中,用户输入数据库名称以及登录凭据。

如何在 Django 中实现这个?我将有很多模型 - 它们都需要根据当前用户从正确的数据库中读取。

【问题讨论】:

    标签: django django-models database-design django-rest-framework database-connection


    【解决方案1】:

    在 settings.py 中

    DATABASES = {
        'default': {},
        'database_one': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'db1',
            'PORT': '3306',
            'HOST': '127.0.0.1',
            'USER': 'db1_user',
            'PASSWORD': 'db1_pwd'
        },
        'database_two': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'db2',
            'PORT': '3306',
            'HOST': '127.0.0.1',
            'USER': 'db2_user',
            'PASSWORD': 'db2_pwd'
        }
    }
    

    为了同步你的数据库,你应该这样做:

    python manage.py migrate
    python manage.py migrate --database=database_one
    python manage.py migrate --database=database_two
    

    第一个命令对默认数据库进行操作,通过 --database 选项可以操作你想要的数据库。

    更多信息。可以在这里找到:https://docs.djangoproject.com/en/2.0/topics/db/multi-db/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-03
      • 2011-02-17
      • 2011-03-07
      • 2015-05-09
      • 2012-02-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多