Настройки базы данных Django для производственного сервера - PullRequest
0 голосов
/ 03 февраля 2011

У меня проблема с конфигурацией базы данных Django с 'postgresql_psycopg2'. Если я даю произвольное имя моей базе данных, как показано ниже,

    DATABASES = {
        'default': {
            'ENGINE': 'postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'xyz',                      # Or path to database file if using sqlite3.
            'USER': 'postgres',                      # Not used with sqlite3.
            'PASSWORD': '${my_password}',                  # Not used with sqlite3.
            'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
            'OPTIONS': {
                "autocommit": True,
            }
        }
    }
> 

OperationalError at /

FATAL:  database "xyz" does not exist

Я много бродю и нахожу то же самое, что с SQLite мы должны указатьабсолютный путь к нашей базе данных;с PostGRE также выше.

Я хотел бы знать:
1) Почему я получаю сообщение об ошибке с вышеуказанной спецификацией и
2) Как я использую свою базу данных, которую я использую с сервером разработки.в файловой системе (Windows).

1 Ответ

0 голосов
/ 03 февраля 2011

Я много занимаюсь серфингом и выясняю, что с SQLite мы должны указать абсолютный путь к нашей базе данных;с PostGRE также выше.

Просто чтобы было ясно (ваша формулировка не так) с postgresql нет абсолютного пути, это просто имя базы данных.

1Сообщение об ошибке довольно ясно, базы данных XYZ не существует.

Перейдите в dbshell (python manage.py dbshell) и введите \l.Если базы данных xyz там нет, введите create database xyz, выйдите из оболочки postgres и снова попробуйте syncdb.

2: Для вашего сервера разработки я рекомендую использовать sqlite3 для простоты использования.

sqlite включен в Python 2.5+, поэтому никаких дополнительных настроек не требуется.Просто установите ENGINE на sqlite3, укажите абсолютный путь к папке, в которой вы хотите сохранить базу данных, и python manage.py syncdb

...