Django - 将 PostGIS 数据库与 PostgreSQL 数据库一起使用,我需要 2 个数据库吗?

Val*_*hio 3 django geodjango django-postgresql

我目前使用的是一个带有标准设置的 PostgreSQL 数据库。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': password,
        'HOST': 'localhost',
        'PORT': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以继续使用默认的 postgres 设置,而只是CREATE EXTENSION postgis在 shell 中执行以访问 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',
    },
}
Run Code Online (Sandbox Code Playgroud)

alf*_*923 6

您可以继续使用默认的 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': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你是对的。django.contrib.gis.db.backends.postgis 只是扩展了 django.db.backends.postgresql_psycopg2 来添加 PostGiS 类型。 (2认同)