【问题标题】:Error in Connecting Multiple Database Django ( 'DatabaseOperations' object has no attribute 'geo_db_type' )连接多个数据库 Django 时出错(“DatabaseOperations”对象没有属性“geo_db_type”)
【发布时间】:2020-10-19 04:18:10
【问题描述】:

我在 Django 中使用多个数据库,

在当前服务器上,已安装 PostGIS,并且正在尝试从另一台服务器连接 POSTGRESQL,

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'db_name_1',
        'USER': 'user_name_1',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    },
    'users_db' : {
        'NAME' : 'db_name_2',
        'ENGINE' : 'django.db.backends.postgresql_psycopg2',
        'HOST' : '',
        'PORT' : '',
        'USER' : 'user_name_2',
        'PASSWORD' : '',
    },
    # 'users_db' : dj_database_url.config(default='postgres://user_name_2:password_2@host_2:0000/db_name_2')
}

现在根据文档。

错误

python3 manage.py migrate --database='users_db'
AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'

更新

根据其他 StackOverflow 页面,我发现 dj-database-url 我使用了它,但问题仍然存在。

dj-database-url

'users_db' : dj_database_url.config(default='postgres://user_name_2:password_2@host_2:0000/db_name_2')

任何帮助将不胜感激,

感谢和问候

【问题讨论】:

    标签: django django-models django-views geodjango django-settings


    【解决方案1】:

    您正在尝试将启用地理空间的对象迁移到非地理空间数据库...当连接另一个数据库时 contrib.gis.db.backend.postgis 应该在第二个数据库上,只有主机和端口要更改

    【讨论】:

    • 感谢您的回复,它们在两个不同的服务器上。所以从技术上讲,这个问题不应该出现。
    • 所显示的错误是它们的 HOST 和 PORT 不同。
    • 看看这两个数据库的引擎...为什么你使用不同的引擎,一个用于空间,一个用于非空间
    • 是的,我明白你的意思了,我已经将 Db 都转换为 PostGIS,现在可以正常工作了。
    • 我也找到了这个链接stackoverflow.com/a/59879983/7999665 确认。
    猜你喜欢
    • 2016-08-01
    • 2023-04-07
    • 1970-01-01
    • 2012-09-14
    • 2021-12-19
    • 2021-08-16
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多