PODPORA AMAZON
Takže jsem po odpovědi Davida Wolevera mluvil také s kluky z Amazonu. Pro případ, že by někdo z vás na tento příspěvek znovu narazil. Samotné použití interní IP serveru nestačí, je to však dobrý začátek. Pokud používáte Ubuntu pro svou instanci Postgresql (nejlépe Natty Narwhal), ujistěte se, že upravujete soubory pg_hba.conf a postgresql.conf.
Tyto dva soubory obvykle najdete na:/etc/postgresql/8.4/main/(pg_hba.conf nebo postgresql.conf)
Pamatujte, že v našem zásobníku používáme Postgresql 8.4, během našich testů se ukázalo, že je to nejkonzistentnější a nejspolehlivější verze Postgresql, která běží na Natty Narwhal.
U různých verzí Postgresql (9.1, 9.0 atd..) není adresář, ve kterém můžete tyto dva soubory najít, stejný jako výše uvedený. Ujistěte se, že znáte správný adresář pro tyto soubory.
KROK 1
Přejděte do konzoly Amazon Management Console a ujistěte se, že jsou obě instance ve stejné skupině zabezpečení. Postgresql a Django standardně používají 5432 a 8000, takže se ujistěte, že máte tyto dva porty otevřené!
KROK 2
(Proveďte to na terminálu instance postgresql)
sudo vim postgresql.conf
Stisknutím „i“ na klávesnici začněte provádět změny. Použijte šipku dolů, dokud nenarazíte na
LISTEN_ADDRESSES:'localhost'
Zbavte se hash tagu na přední straně a místo 'localhost' přidejte soukromou IP své instance postgresql (soukromou ip najdete na konzole pro správu EC2) a musíte také přidat 127.0.0.1.
PŘÍKLAD:
LISTEN_ADDRESSES:'soukromá ip, 127.0.0.1'
Ujistěte se, že soukromou IP a adresu místního hostitele oddělujete čárkou a vše ponecháváte pod jednou uvozovkou.
Po provedení změn stiskněte ESC a stiskněte ZZ (uložte změny dvakrát velkými písmeny)
KROK 3
sudo vim pg_hba.conf
Použijte šipku dolů, dokud nenarazíte na něco, co vypadá takto:
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
Ještě jednou stiskněte 'i' na klávesnici a proveďte změny přesně tak, jak to mám výše.
Všimněte si, že pod IPv6 mám django_db a django_login, změňte je na název vaší databáze postgresql a přihlašovací jméno uživatele, které používáte pro svou databázi postgresql.
Po provedení změn stiskněte ESC a stiskněte ZZ (uložte změny dvakrát velkými písmeny)
KROK 4 (téměř hotovo Ahoj5!)
Restartujte postgresql server pomocí tohoto příkazu v terminálu:
sudo /etc/init.d/postgresql restart
Gratuluji! Server je v provozu, ale zbývá poslední krok.
KROK 5
Spusťte instanci Django EC2, přejděte na stránku settings.py a vyhledejte toto:
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.
}
V části 'HOST':' ' změňte na 'HOST':'ať už je soukromá IP instance Postgresql'
Uložte změny. Otevřete terminál a najděte adresář, kde se nachází váš soubor manage.py. Jakmile budete v tomto adresáři, spusťte následující příkaz:./manage.py syncdb
Ty vytvoří všechny potřebné tabulky pro modely, které jste vytvořili v Django. Gratulujeme, úspěšně jste vytvořili propojení mezi vaší instancí databáze a vaší instancí Django.
Pokud máte nějaké dotazy, rád vám pomohu! Zanechte komentář níže a já se vám co nejdříve ozvu! :)