В вашей базе данных отсутствует южный модуль базы данных "south.db.postgresql_psycopg2"

i новичок в django, и я получаю эту ошибку с юга, но я не знаю, чего не хватает. Я ищу ответы, но ничего не могу найти.

There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.

Это моя base_settings:

from unipath import Path

BASE_DIR = Path(__file__).ancestor(3)


SECRET_KEY = '[email protected]%bc7%+*11%[email protected]_e&)r2o&^3%zjse)n=6b&w^hem96'

DJANGO_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

)

THIRD_PARTY_APPS = (
    'south',

)

LOCAL_APPS = (


)


INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS


MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'misite.urls'

WSGI_APPLICATION = 'misite.wsgi.application'

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

local_settings:

from .base import *

TEMPLATE_DEBUG = True



ALLOWED_HOSTS = []

DEBUG = True

DEFAULT_FROM_EMAIL = '[email protected]'





# ----------------------------
    # POSTGRESQL

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'misite',
        'USER:': 'fernandoperez',
        'PASSWORD': 'admin',
        'HOST':'localhost',
        'PORT':'5432',
    }
}

SOUTH_DATABASE_ADAPTERS = {
     'default': "south.db.postgresql_psycopg2"
 }

STATIC_URL = '/static/'

Может кто-нибудь мне помочь? Большое спасибо.

Ответы

Ответ 1

Это случилось со мной, когда я обновил различные модули с помощью pip, и одна из зависимостей автоматически обновила Django до текущей версии (1.8). Вы можете просто проверить, какова ваша текущая версия Django (pip freeze), и если она 1,8 просто понизится до 1.6 строки (pip install -U "Django<1.7").

Ответ 2

Попробуйте pip uninstall South, после чего вы увидите, готова ли ваша версия 1.8.

Ответ 3

Обратите внимание, что South теперь заканчивается в связи с новой структурой миграции в Django 1.7, которая основана на Юге но со значительными улучшениями дизайна.

Подробнее о структуре переноса Django вы можете найти в примечании к выпуску - https://docs.djangoproject.com/en/1.9/releases/1.7/#schema-migrations

Юг не будет работать с Django 1.7; Он поддерживает только версии 1.4, 1.5 и 1.6.

Ответ 4

Но дело в том, как исправить проблему, сохраняя django 1.8 (последняя версия). Я не думаю, что оценка до 1.6 - хорошая идея, потому что django 1.6 больше не является безопасной версией.

Ответ 5

Используя django 2.2.4, я понял, что "юг" был включен в одно из моих сторонних установленных приложений (socket_server). Но не в модуле, а скорее в политике миграции (возможно, ребята, которые создали модуль, все еще используют старую версию django). Таким образом, имя было изменено с 0001_inicial.py на 0001_inicial_old, и django не смог найти его и сгенерировал другое. работал как полумера (розетка должна быть установлена без него)