sql >> Databáze >  >> RDS >> PostgreSQL

Nastavení Django a PostgreSQL na dvou různých instancích EC2

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! :)



  1. Modul Pythonu cx_Oracle modul nebyl nalezen

  2. Optimalizujte PostgreSQL pro rychlé testování

  3. Poslechněte si epizodu 2 podcastu Microsoft Access

  4. Proč nemohu použít alias ve sloupci count(*) a odkazovat na něj v klauzuli have?