ПОДДРЪЖКА НА AMAZON
Така че в крайна сметка разговарях и с момчетата от Amazon след отговора на Дейвид Волевър. Само в случай, че някой от вас попадне отново на този пост. Използването само на вътрешния IP сървър на сървъра не е достатъчно, но е добро начало. Ако използвате Ubuntu за вашия Postgresql екземпляр (за предпочитане Natty Narwhal), уверете се, че сте редактирали файловете pg_hba.conf и postgresql.conf.
Обикновено можете да намерите тези два файла на адрес:/etc/postgresql/8.4/main/(pg_hba.conf или postgresql.conf)
Имайте предвид, че използваме Postgresql 8.4 в нашия стек, той се оказа най-последователната и солидна версия на Postgresql, която се изпълнява на Natty Narwhal по време на нашите тестове.
За различни версии на Postgresql (9.1, 9.0 и т.н.) директорията, в която можете да намерите тези два файла, не е същата като изброената по-горе. Уверете се, че знаете правилната директория за тези файлове.
СТЪПКА 1
Отидете в конзолата за управление на Amazon и се уверете, че и двата екземпляра са под една и съща група за сигурност. Postgresql и Django използват 5432 и 8000 по подразбиране, така че се уверете, че тези два порта са отворени!
СТЪПКА 2
(Направете това на терминала на екземпляра на postgresql)
sudo vim postgresql.conf
Натиснете "i" на клавиатурата си, за да започнете да правите промени. Използвайте клавиша със стрелка надолу, докато не попаднете на
LISTEN_ADDRESSES:'localhost'
Отървете се от хеш маркера отпред и вместо „localhost“, добавете частния IP на вашия екземпляр на postgresql (можете да намерите частния IP адрес на вашата конзола за управление EC2) и виетрябва да добавите и 127.0.0.1.
ПРИМЕР:
LISTEN_ADDRESSES:'частен ip, 127.0.0.1'
Уверете се, че разделяте частния IP адрес и локалния хост адрес със запетая и оставяте всичко под един цитат.
След като направите промените, натиснете ESC и натиснете ZZ (два пъти с главни букви, за да запазите промените)
СТЪПКА 3
sudo vim pg_hba.conf
Използвайте клавиша със стрелка надолу, докато срещнете нещо, което изглежда така:
Database administrative login by UNIX sockets
local all postgres ident
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 md5
local django_db django_login md5
host replication postgres 127.0.0.1/32 md5
host replication postgres ::1/128 md5
Още веднъж натиснете 'i' на клавиатурата си и направете промените в нея точно както имам по-горе.
Ще забележите, че под IPv6 имам django_db и django_login, променете го съответно с името на вашата база данни postgresql и вашето потребителско име, което използвате за вашата база данни postgresql.
След като направите промените, натиснете ESC и натиснете ZZ (два пъти с главни букви, за да запазите промените)
СТЪПКА 4 (Почти готово Hi5!)
Рестартирайте postgresql сървъра, като използвате тази команда в терминала:
sudo /etc/init.d/postgresql рестартиране
Поздравления! Сървърът е готов и работи, но има една последна стъпка.
СТЪПКА 5
Стартирайте вашия Django EC2 екземпляр, отидете на вашите settings.py и потърсете това:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django_db',
'USER': 'django_login',
'PASSWORD': 'password',
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
Под 'HOST':' ' , променете го на 'HOST':'каквото и да е частният IP на екземпляра на Postgresql'
Запазете промените. Отворете терминал и намерете директорията, където е вашият файл manage.py. След като сте в тази директория, изпълнете следната команда:./manage.py syncdb
Те ще създадат всички необходими таблици за моделите, които сте създали в Django. Поздравления, успешно създадохте връзка между вашия екземпляр на база данни и вашия екземпляр на Django.
Ако имате въпроси, ще се радвам да помогна! Оставете коментар по-долу и аз ще се свържа с вас възможно най-скоро! :)