我有一个Django项目,并且正在使用Postgres数据库。我想找到一种更简单的方法来在本地和 Github 上存储我的凭据,这样我就可以在这两个地方运行测试,但我的敏感信息都不在 git repo 中。
即使该数据库仅存在于我的计算机上(并且 Github 测试数据库在 GitHub 上一次仅存在大约一分钟),我想为SECRETS使用可能的最佳实践,所以当我上线时,我已经准备好了。
目前,我拥有的唯一敏感数据是数据库密码。以下是我如何将我的真实密码保存在 GitHub 之外。
settings.py(在 Git 中):
VAR_1='abc'
VAR_2 = '123'
#DOES NOT INCLUDE DATABASE CONFIG
VAR_3 = 'efg'
# Add settings from local file into main settings
try:
from .localsettings import *
except ImportError:
import sys
print('localsettings not defined.')
localsettings.py(不在 Git 中):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'real-db-name',
'USER': 'real-user',
'PASSWORD': 'real-password',
'HOST': 'localhost',
'PORT': '',
}
}
testsettings.py(在 Git 中):
# import main settings and then overright certian values
try:
from .settings import *
except ImportError:
import sys
print('settings not defined.')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'github-db-name',
'USER': 'github-db-user',
'PASSWORD': 'github-user-password',
'HOST': 'localhost',
'PORT': '',
}
}
使用此设置,我可以在本地正常运行测试,python manage.py test
但是当我在 Github 上运行它们时,我必须使用python manage.py test --settings=path.to.testsettings
有没有一种方法可以像 GitHub 那样在本地存储秘密,这样我就可以只拥有一个设置文件,它就可以在本地和 GitHub 上工作?