Django一直在引用本地数据库而不是远程数据库

时间:2013-06-19 13:37:46

标签: django postgresql remote-server

我最近将postgresql数据库迁移到远程服务器。它曾经是我运行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.
},
}

2 个答案:

答案 0 :(得分:0)

您需要更新settings.py文件以指向新数据库。这由DATABASES字典控制。此外,作为附加提示,我建议您更新系统并使用dj_database_url

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

这将使您的数据库密码不受版本控制。然后,您只需创建一个名为DATABASE_URL的ENV VAR,其中包含新数据库的信息。有关详细信息,请参阅文档或Google。

答案 1 :(得分:0)

我想通了,我实际上不得不重新启动我正在处理的服务器。看起来,单独重启HTTP服务器不会做那项工作。除非服务器重新启动,否则以前编译的代码,.pyc文件会一直存在!

相关问题