【问题标题】:using postgis and multi tenancy with django在 django 中使用 postgis 和多租户
【发布时间】:2019-07-06 15:14:02
【问题描述】:

我必须创建一个使用按国家/地区分隔的多租户的应用程序 [即:colombia.myapp.com、usa.myapp.com 等],并且我想将 geoDjango 模块与 PostGIS 一起使用。对于我的多租户,我使用的是 django-tenant-schemas,但两种解决方案都会更改 postgres 数据库的引擎。

问题: 有没有办法在 django 的同一个数据库上使用两个独立的引擎?或者使用两个引擎连接到同一个数据库而不在数据库中产生冲突并同时使用 Multi Tenancy 和 GeoDjango?

【问题讨论】:

    标签: django multi-tenant geodjango


    【解决方案1】:

    是的,您可以,您只需要注意始终指明您要使用的数据库。

    settings.py

    DATABASES = {
        'default': {},
        'users': {
            'NAME': 'user_data',
            'ENGINE': 'django.db.backends.mysql',
            'USER': 'mysql_user',
            'PASSWORD': 'superS3cret'
        },
        'customers': {
            'NAME': 'customer_data',
            'ENGINE': 'django.db.backends.mysql',
            'USER': 'mysql_cust',
            'PASSWORD': 'veryPriv@ate'
        }
    }
    

    https://docs.djangoproject.com/en/2.1/topics/db/multi-db/

    【讨论】:

    • 非常感谢,但是,我的想法是使用相同的数据库不同的引擎,这可能吗?像 DATABASES = { 'default': {}, 'users': { 'NAME': 'database', 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'USER': 'postgresuser' , 'PASSWORD': 'superS3cret' }, 'customers': { 'NAME': 'database', 'ENGINE': 'tenant_schemas.postgresql_backend', 'USER': 'postgresuser', 'PASSWORD': 'superS3cret' } }
    • 是的,绝对的
    • @beren5000 有用吗?我正在尝试使用 timescaledb 和 Postgis。使用 2 个数据库不是一种选择,因为我想拥有 bw 表的关系。
    • 今天之后来这里的任何人,请阅读此答案,这将详细回答您的问题:stackoverflow.com/questions/20305197/…
    猜你喜欢
    • 2018-06-14
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    相关资源
    最近更新 更多