我在OpenShift中安装了django 1.8.4 / Python 3.3应用程序,并添加了一个MySQL 5.5盒式磁带。现在我想让django使用MySQL而不是sqlite3。为此,我从
更改了setup.pyinstall_requires=[
'Django==1.8.4'
],
到
install_requires=[
'Django==1.8.4',
'mysqlclient'
],
我从
更改了wsgi / myproject / myproject / settings.pyDATABASES = {
'default': {
# GETTING-STARTED: change 'db.sqlite3' to your sqlite3 database:
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(DATA_DIR, 'db.sqlite3'),
}
}
到
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql_db_name',
'USER': 'mysql_username',
'PASSWORD': 'xxxxxx',
'HOST': os.environ['OPENSHIFT_DB_HOST'],
'PORT': os.environ['OPENSHIFT_DB_PORT'],
}
}
当我git推送到OpenShift时,我收到以下错误:
remote: Executing 'python /var/lib/openshift/5642f9ad7628e16a6300030a/app-root/runtime/repo//wsgi/myproject/manage.py migrate --noinput'
remote: Traceback (most recent call last):
remote: File "/opt/rh/python33/root/usr/lib64/python3.3/os.py", line 673, in __getitem__
remote: value = self._data[self.encodekey(key)]
remote: KeyError: b'OPENSHIFT_DB_HOST'
我做错了什么?
谢谢,
碧玉
答案 0 :(得分:1)
正如错误消息所示,OPENSHIFT_DB_HOST
似乎不是正确的环境变量。尝试使用OPENSHIFT_MYSQL_DB_HOST
(并为其他变量添加数据库类型_MYSQL
)。
您实际上也可以将变量用于用户名和密码,详情请参见: https://developers.openshift.com/en/managing-environment-variables.html#database-variables