听起来您正在尝试让本地 Django 测试服务器连接到您的 AWS EC2 数据库。你可以做的是在本地安装和运行 Postgres,然后将你的本地 Django 服务器指向它。以下是有关Database 设置的Host 选项的文档:Django Database Settings
如果您将Host 字段设置为空字符串,那么您的 AWS EC2 Django 服务器将使用其(本地)AWS EC2 Postgres 服务器,而您自己的本地计算机 Django 服务器也将使用您设置的本地 Postgres。
您当前的settings.py 可能是这样的:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '##Your database name ##',
'USER': '## Your database user ##',
'PASSWORD': '## Your database user password ##',
'HOST': '##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com',
'PORT': '', # Defaults to 5432
}
}
如果你只是设置:
'HOST': '' # Will connect to a localhost database
然后,运行在##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com 的 Django 服务器将连接到在端口 5432 上运行在同一位置 (localhost) 的 Postgres 数据库。同样,您自己的计算机将连接到您自己计算机上的 localhost Postgres 数据库。如果数据库与 Django 服务器位于不同的计算机上,则只需设置 HOST。对于您描述的那种测试,本地数据库就足够了。
或者,如果您使用 Git,您可以将 PG_HOST 字段添加到与 settings.py 位于同一文件夹中的名为 local_settings.py 的文件中,然后将每个位置的相应主机添加到 PG_HOST,然后添加local_settings.py 到您的 .gitignore 文件。然后只需在您的settings.py 中导入PG_HOST 并将Host 字段设置为等于PG_HOST。这样,您可以在本地和服务器实例上独立设置数据库主机。例如:
在 AWS EC2 实例上创建包含内容的 local_settings.py:
PG_HOST = '##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com'
在本地计算机上创建包含内容的 local_settings.py:
PG_HOST = '' # Local host
settings.py:
from .local_settings import PG_HOST
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '##Your database name ##',
'USER': '## Your database user ##',
'PASSWORD': '## Your database user password ##',
'HOST': PG_HOST,
'PORT': '', # Defaults to 5432
}
}
请记住.gitignorelocal_settings.py,否则特定位置的设置将被覆盖。
您也可以使用local_settings.py 文件将您的 postgres 用户名和密码从您的 Git 历史记录中删除(同样,如果您使用 git 或某些源代码控制)。