Django - 在使用PostgreSQL数据库的同时使用PostGIS数据库,我需要两个数据库吗?

8

我目前正在使用一个标准设置的单个PostgreSQL数据库。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': password,
        'HOST': 'localhost',
        'PORT': '',
    }
}

我的问题是,我能否继续使用默认的postgres设置,并仅在shell中执行CREATE EXTENSION postgis以获取访问postgis功能?还是我需要单独添加一个postgis数据库,如下所示:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': password,
        'HOST': 'localhost',
        'PORT': '',
    }
    'geodata': {
         'ENGINE': 'django.contrib.gis.db.backends.postgis',
         'NAME': 'geodjango',
         'USER': 'geo',
    },
}
1个回答

14
您可以继续使用默认的Postgres设置,只需将引擎更改为:django.contrib.gis.db.backends.postgis
DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': password,
        'HOST': 'localhost',
        'PORT': '',
    }
}

啊,那我猜测 django.contrib.gis.db.backends.postgis 是一个扩展,包含了 django.db.backends.postgresql_psycopg2 中的所有内容以及地理特定功能? - Valachio
2
你是对的。django.contrib.gis.db.backends.postgis只是扩展了django.db.backends.postgresql_psycopg2以添加PostGIS类型。 - alfredo138923

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接