Django 1.10.5 및 PostgreSQL 9.5를 사용하여 응용 프로그램 서버에서 원격 DB 서버로 마이그레이션을 실행하려고합니다. 이들은 별도의 우분투 16.04 EC2 인스턴스입니다. 필자는 응용 프로그램 서버가 아닌 원격 db 서버에만 Postgresql을 설치했습니다.Django로 원격 데이터베이스로 마이그레이션
host all all 10.0.59.0/24 trust
내가 내 postgresql.conf 파일 내에서 청취 주소를 설정합니다 :
나는 pg_hba_conf 파일을 업데이트sudo apt-get update
sudo apt-get install libpq-dev postgresql postgresql-contrib
:
내가 가진 DB 서버에 전 세계적으로 PostgreSQL을 설치listen_addresses = '*'
장고는 앱 서버의 콘도 환경에 살고 있습니다. 나는 psycopg2 == 2.6.2를 conda 환경에 설치했습니다. db 서버에 psycopg2를 설치하지 않았습니다.
: 나는 다음과 같은 오류를 얻을python manage.py migrate
:
DATABASES: {
"default": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"NAME": "mysite",
"USER": "postgres",
"PASSWORD": "",
"HOST": "10.0.59.134",
"PORT": "5432"
},
}
실행 한 후 : 여기
은 '호스트'는 IP를 DB 서버의 주소입니다 내 장고 데이터베이스 설정입니다
Traceback (most recent call last):
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
connection = Database.connect(**conn_params)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "10.0.59.134" and accepting
TCP/IP connections on port 5432?
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
execute_from_command_line(sys.argv)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 81, in handle
connection.prepare_database()
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/contrib/gis/db/backends/postgis/base.py", line 24, in prepare_database
with self.cursor() as cursor:
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 231, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 204, in _cursor
self.ensure_connection()
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
connection = Database.connect(**conn_params)
File "/home/ubuntu/anaconda3/envs/mysite/lib/python3.6/site-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "10.0.59.134" and accepting
TCP/IP connections on port 5432?
두 EC2 인스턴스 모두 사용자 지정 VPC의 개인 서브넷에 있습니다. 인바운드 및 아웃 바운드 규칙에 대한 보안 그룹 설정은 어떤 형태의 트래픽이라도 두 컴퓨터간에주고받을 수 있도록 설정됩니다.
이것은 개인 서브넷의 테스트 사이트이므로 비밀 번호 나 사용자는 없지만 지금은 나와 있습니다.
무엇이 여기에 있습니까?
어, 몰라, 그 오류를 얻기 위해 무엇을하고 있는지 말하지 않았기 때문에. 정확한 오류 메시지와 오류 메시지를 보여주십시오. –
안녕 다니엘. 내 사과. 그에 따라 질문을 업데이트했습니다. 감사. –