我最近将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.
},
}
答案 0 :(得分:0)
您需要更新settings.py文件以指向新数据库。这由DATABASES
字典控制。此外,作为附加提示,我建议您更新系统并使用dj_database_url
DATABASES = {'default': dj_database_url.config()}
这将使您的数据库密码不受版本控制。然后,您只需创建一个名为DATABASE_URL的ENV VAR,其中包含新数据库的信息。有关详细信息,请参阅文档或Google。
答案 1 :(得分:0)
我想通了,我实际上不得不重新启动我正在处理的服务器。看起来,单独重启HTTP服务器不会做那项工作。除非服务器重新启动,否则以前编译的代码,.pyc文件会一直存在!