2013-06-19 2 views
0

Недавно я перенес свою базу данных postgresql на удаленный сервер. Раньше это было на той же машине, где я запускал Django. Я решил сделать ход, чтобы облегчить нагрузку на машину.Django продолжает ссылаться на локальную базу данных вместо удаленной базы данных

Однако у меня возникли проблемы. Я сделал syncdb, и таблицы синхронизировались с удаленной базой данных. Я проверил, действительно ли таблицы действительно синхронизируются, и мы там. Внутри таблиц нет данных, я их еще не заполнил. Однако, когда я обращаюсь к странице администрирования Django, она каким-то образом заполняется старыми данными из локальной базы данных.

Я нахожу это поведение чрезвычайно странным. Я решил удалить локальную базу данных, и я получил следующую ошибку:

FATAL: database "django_db" does not exist 

Это странно, потому что все таблицы находятся в удаленной базе данных. Как локальная, так и удаленная база данных называются django_db. Может ли это быть проблема?

Это то, что у меня в settings.py

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 
    'NAME': 'django_db',      # Or path to database file if using sqlite3. 
    'USER': 'django_login',      # Not used with sqlite3. 
    'PASSWORD': 'password',     # Not used with sqlite3. 
    'HOST': 'XX.XXX.X.XX',      # Set to empty string for localhost. Not used with sqlite3. 
    'PORT': '5432',      # Set to empty string for default. Not used with sqlite3. 
}, 
} 
+0

Как вы сказали Django, где находится база данных? –

+1

Вы можете показать настройки своей базы данных? – karthikr

+0

Что находится в файле конфигурации? Можете ли вы скопировать соответствующие разделы дословно или лучше разместить весь файл, например. на Gist? –

ответ

0

Я понял, что на самом деле мне пришлось перезапустить сервер, над которым я работал. Кажется, перезапуск только HTTP-сервера не будет выполнять эту работу. Ранее скомпилированный код, файлы .pyc будут задерживаться, если сервер не будет перезапущен!

0

Вам нужно будет обновить settings.py файл, чтобы указать на новую базу данных. Это контролируется словарем DATABASES. Кроме того, как добавил наконечник, я бы рекомендовал вам обновить вашу систему и использовать dj_database_url

DATABASES = {'default': dj_database_url.config()} 

Это позволит сохранить пароль базы данных из-под контроля версий. Затем вам просто нужно создать ENV VAR с именем DATABASE_URL, который содержит информацию для вашей новой базы данных. Дополнительную информацию см. В документации или Google.

Смежные вопросы