2013-06-19 31 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()} 

这将让你的数据库密码进行版本控制的。然后您只需创建一个名为DATABASE_URL的ENV VAR,其中包含用于新数据库的信息。有关更多信息,请参阅文档或Google。

相关问题