1

我最近将我的 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.
},
}
4

2 回答 2

1

我想通了,我实际上不得不重新启动我正在处理的服务器。看来,仅重新启动 HTTP 服务器并不能完成这项工作。之前编译的代码,.pyc 文件会一直存在,除非重新启动服务器!

于 2013-06-19T17:59:53.440 回答
0

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

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

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

于 2013-06-19T14:14:42.903 回答