2017-01-18 21 views
1

我遇到此问题settings.DATABASES is improperly configured. Please supply the NAME value但它不适用于我。Getting Database正确配置。请提供名称值错误


上应用蟒蛇manage.py makemigrations,我收到错误

Traceback (most recent call last): 
File "manage.py", line 22, in <module> 
execute_from_command_line(sys.argv) 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
utility.execute() 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv 
self.execute(*args, **cmd_options) 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 345, in execute 
output = self.handle(*args, **options) 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 106, in handle 
loader.check_consistent_history(connection) 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 276, in check_consistent_history 
applied = recorder.applied_migrations() 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations 
self.ensure_schema() 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 52, in ensure_schema 
if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()): 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py", line 233, in cursor 
cursor = self.make_cursor(self._cursor()) 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py", line 204, in _cursor 
self.ensure_connection() 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
self.connect() 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py", line 170, in connect 
conn_params = self.get_connection_params() 
File "/home/rishav/EvalAI/venv/local/lib/python2.7/site-packages/django/db/backends/postgresql/base.py", line 158, in get_connection_params 
"settings.DATABASES is improperly configured. " 
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the NAME value. 

我的开发数据库

​​

并督促数据库

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.postgresql_psycopg2', 
    'NAME': os.environ.get('RDS_DB_NAME', ""), 
    'USER': os.environ.get('RDS_USERNAME', ""), 
    'PASSWORD': os.environ.get('RDS_PASSWORD', ""), 
    'HOST': os.environ.get('RDS_HOSTNAME', ""), 
    'PORT': os.environ.get('RDS_PORT', ""), 
    } 
} 

如何解决这个问题?

+0

你还没有解释你如何应用这些dev和prod配置。 –

+0

其实它是一个我试图贡献的开源项目 – Beginner

+0

但是决定使用哪两个数据库设置的代码是什么? –

回答

1

这听起来像你的环境变量可能没有设置 - 我怀疑这是发生了什么事情。

登录到您的生产服务器并确保您的Django进程可以访问RDS_DB_NAMERDS_USERNAME等作为环境变量。

还有:如果您有问题,您可能需要尝试硬编码虚假凭证,而不是使用环境变量。这至少会让你遇到下一个错误,它应该说无效的证书或类似的东西。这将确认环境变量是问题并需要修复。

UPDATE:如果您想尝试硬编码凭证,为您的生产数据库的配置做这样的事情:

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.postgresql_psycopg2', 
    'NAME': 'test', 
    'USER': 'test', 
    'PASSWORD': 'test', 
    'HOST': 'localhost', 
    'PORT': 5432, 
    } 
} 

这将“硬编码”你的假凭证。然后,您可以部署此应用程序并查看您遇到的错误。

+0

对不起,但你能告诉我如何确保django有权访问环境变量 – Beginner

+0

如果你登录到运行Django项目的服务器,那么以Django应用运行的用户帐户登录,你可以查看通过使用'$ echo RDS_DB_NAME'语法在命令行上创建环境变量。如果您在那里看不到该值,则表示该环境变量不存在。 – rdegges

+0

这是打印相同的价值,我回声 – Beginner

相关问题