如何在 OpenShift 中将 MySQL Cartridge 连接到 Django
How to connect MySQL Cartridge to Django in OpenShift
我已经在 OpenShift 中安装了 django 1.8.4/Python 3.3 应用程序并添加了一个 MySQL 5.5 卡带。现在我想让 django 使用 MySQL 而不是 sqlite3。为此,我将 setup.py 从
更改为
install_requires=[
'Django==1.8.4'
],
到
install_requires=[
'Django==1.8.4',
'mysqlclient'
],
我把wsgi/myproject/myproject/settings.py 改成了
DATABASES = {
'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'
我做错了什么?
谢谢,
贾斯珀
如错误消息所述,OPENSHIFT_DB_HOST
似乎不是正确的环境变量。尝试使用 OPENSHIFT_MYSQL_DB_HOST
(并为其他变量包括数据库类型 _MYSQL
)。
您实际上也可以将变量用于用户名和密码,详情请见此处:
https://developers.openshift.com/en/managing-environment-variables.html#database-variables
我已经在 OpenShift 中安装了 django 1.8.4/Python 3.3 应用程序并添加了一个 MySQL 5.5 卡带。现在我想让 django 使用 MySQL 而不是 sqlite3。为此,我将 setup.py 从
更改为install_requires=[
'Django==1.8.4'
],
到
install_requires=[
'Django==1.8.4',
'mysqlclient'
],
我把wsgi/myproject/myproject/settings.py 改成了
DATABASES = {
'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'
我做错了什么?
谢谢,
贾斯珀
如错误消息所述,OPENSHIFT_DB_HOST
似乎不是正确的环境变量。尝试使用 OPENSHIFT_MYSQL_DB_HOST
(并为其他变量包括数据库类型 _MYSQL
)。
您实际上也可以将变量用于用户名和密码,详情请见此处: https://developers.openshift.com/en/managing-environment-variables.html#database-variables