Настройка django на юг с помощью PostgreSQL - PullRequest
3 голосов
/ 25 сентября 2010

Я не могу запустить свой сайт с юга. Я успешно установил юг и могу успешно импортировать юг.

./manage.py shell
>>> import south
>>>

Однако, когда я добавляю 'south' к INSTALLED_APPS и запускаю ./manage.py syncdb (для завершения установки), я получаю следующую ошибку:

Для вашей базы данных отсутствует модуль базы данных South 'south.db.django.db.backends.postgresql_psycopg2'. Пожалуйста, выберите поддерживаемую базу данных, проверьте настройки SOUTH_DATABASE_ADAPTER [S] или удалите Юг из INSTALLED_APPS.

Я использую базу данных PostgreSQL и библиотеку postgresql_psycopg2. Я запутался, потому что Postgres - определенно поддерживаемая база данных. Нужно ли вручную настраивать SOUTH_DATABASE_ADAPTER в settings.py?

Редактировать: вот мои настройки базы данных. Я знаю, что они работают - (тестовый) сервер, на котором я пытаюсь запустить его, неделями правильно общался с БД.

DATABASE_ENGINE = 'postgresql_psycopg2' 
DATABASE_NAME = 'iknowthisiscorrect' 
DATABASE_HOST = '' #localhost
DATABASE_PORT = '5432'  # I've configured Postgres to use this port

Ответы [ 4 ]

3 голосов
/ 06 июня 2012

Это на самом деле ошибка в более поздних версиях south, они не полностью обратно совместимы и предполагают импорт из django.db.utils, который не существует до django 1.2.

Вы можете исправитьвокруг этого откройте south/db/generic.py и отредактируйте строку 6:

try:
    from django.db.utils import DatabaseError
except:
    from django.db import DatabaseError

Примечание: этот импорт также находится в других db/*.py файлах, но я не использую oracle или firebird, поэтому непротестировано с ними.

Второе замечание: не помогает, что транзакции django 1.1 не учитывают псевдонимы и, вероятно, не позволят югу фактически работать.

2 голосов
/ 25 сентября 2010

Какие версии South и Django вы используете? Если вы используете Django 1.2, вам нужно использовать последнюю версию South.

Эта строка в южной кодовой базе показывает, что она устанавливает свой собственный адаптер базы данных из настроек базы данных основного файла настроек проекта, если не заданы конкретные SOUTH_DATABASE_ADAPTERS. Это подразумевает, что сами настройки вашей БД могут быть неправильными, возможно?

Можете ли вы обновить свой вопрос настройками базы данных (за исключением паролей), пожалуйста?

1 голос
/ 17 августа 2012

Если вы используете Django 1.1, то должен работать South 0.7.0.Вы можете скачать его с здесь .Я не знаю, будут ли работать другие версии, я пробовал только 0.7.0 для Postgres 8.3 и 8.4.

1 голос
/ 25 сентября 2010

Я нашел этот комментарий в южном исходном коде . Посмотрите на строку № 63.

 63     # This error should only be triggered on 1.1 and below. 
64      sys.stderr.write( 
65          ( 
66              "There is no South database module '%s' for your database. " + \ 
67              "Please either choose a supported database, check for " + \ 
68              "SOUTH_DATABASE_ADAPTER[S] settings, " + \ 
69              "or remove South from INSTALLED_APPS.\n" 
70          ) % (module_name,) 

Какую версию Django вы используете? Это <= 1,1? </p>

...