DaftAcademy / daftacademy-python_levelup-spring2019

17 stars 17 forks source link

Wykład 5 #28

Open Piotr296 opened 5 years ago

Piotr296 commented 5 years ago

Czy mógłbym prosić kogoś o jakieś krótkie wypunktowanie drogi technologicznej jaką muszę przejść, aby zdeployować apkę postgresową na heroku? Na razie zrozumiałem, że muszę:

  1. Pobrać i zainstalować PostgreeSQL.
  2. Odpalam Postgreesa.
  3. Napisać apkę i wrzucić ją na heroku.
  4. W tym miejscu podać nazwę mojej apki: obraz
  5. A gdzie podaje dumpa?
konradorlinski commented 5 years ago

Przez heroku cli za pomocą komendy:

heroku pg:backups:restore 'dump_url' DATABASE_URL --app NAZWA_TWOJEJ_APKI
heroku pg:backups:restore 'https://github.com/naboru/pg_chinook_heroku/raw/master/chinook.dump' DATABASE_URL --app NAZWA_TWOJEJ_APKI
Piotr296 commented 5 years ago

Próbowałem: obraz Musze zmienić coś w ustawieniach apki na heroku?

mszudarek commented 5 years ago

U mnie na Windowsie pomogło zastosowanie " zamiast '. Czyli heroku pg:backups:restore "https://github.com/naboru/pg_chinook_heroku/raw/master/chinook.dump" DATABASE_URL --app NAZWA_TWOJEJ_APKI

konradorlinski commented 5 years ago

@Piotr296 A utworzyłeś w panelu Heroku bazę dla aplikacji? W sensie czy wyświetla się ta baza w taki sposób jak Marcin pokazywał pod koniec wykładu (tylko ilość wierszy powinna być 0)

Piotr296 commented 5 years ago

Aktualnie jest tak: obraz

Zaraz spróbuję zmienić nawiasy jak radzi @mszudarek

Piotr296 commented 5 years ago

Powinno tak być? 500 jest średnio miła, to kwestia serwera, czy coś źle napisałem? obraz

mszudarek commented 5 years ago

image U mnie przeszło, sprawdziłem jeszcze raz przed chwilą.

Piotr296 commented 5 years ago

U mnie dalej ten sam błąd.

  1. Czy mój szablon aplikacji na heroku musi mieć już w sobie treść (apkę, Procfile czy requirements)?
  2. Coś jeszcze może ustawiałeś na samym heroku? Czy zad05 to nazwa twojego pliku .py czy nazwa aplikacji na heroku?
Piotr296 commented 5 years ago

Dobra. Widzę jakąś różnicę, ale nie wiem skąd się bierze. U mnie jest postgresql-objective, a u Ciebie postgresql-encircled.

mszudarek commented 5 years ago
  1. Nie odpowiem Ci czy jest to konieczne (wątpię), ale ja faktycznie na start wgrałem cały szablon Marcina na heroku
  2. zad05 to nazwa aplikacji na heroku

Nie wiem czy to jest dobry trop, postgresql-encircled-78856 to nazwa mojego datastore na heroku.

Piotr296 commented 5 years ago

obraz

Zniszczyłem starą bazę i stworzyłem nową. Przyjęła jakąś nową nazwę i już działa ¯_(ツ)_/¯

WNIOSKI: jak masz podobny problem na Windowsie to uwzględnij " oraz twórz nowe datastore, aż jakiś zadziała.

Piotr296 commented 5 years ago

Ilość wierszy powinna sobie samoistnie spadać? To normalne zachowanie heroku? obraz

Piotr296 commented 5 years ago

I jakie przypisanie powinno występować tutaj: DATABASE_URL = os.environ['DATABASE_URL']

Jeśli podam tutaj URI to dostaję raise KeyError(key) from None. obraz

RafalKornel commented 5 years ago

Jeśli odpalasz aplikacje lokalnie to musisz zmienić deklaracje 'engine' (tak jak jest na wykładzie). Twoja lokalna maszyna nie ma zadeklarowanej zmiennej DATABASE_URL, co innego heroku które trzyma w niej url do bazy danych.

RafalKornel commented 5 years ago

Hm, ciekawe, zauważyłem że moja baza na heroku również się magicznie skurczyła, ma teraz 8500 wierszy.

FHoffmannCode commented 5 years ago

heroku się nie chwali tym jak liczy ilość wierszy w bazie, nie przejmowałbym się tym za bardzo

Piotr296 commented 5 years ago

Niestety nie miałem chyba takiej styczności z apkami webowymi, jak większość kursantów :( obraz Czy pod string 'DATABASE_URL" muszę wpisać adres mojej bazy danych w Githuba?

konradorlinski commented 5 years ago

Do zmiennej database musisz przypisać wartość ze zmiennej środowiskowej.

Piotr296 commented 5 years ago

Jak?

FHoffmannCode commented 5 years ago

zapraszam do lektury https://stackoverflow.com/questions/4906977/how-to-access-environment-variable-values

FHoffmannCode commented 5 years ago

btw robisz to dobrze, po prostu nie masz takiej zmiennej jak DATABASE_URL u siebie lokalnie, dlatego Ci wyrzuca KeyError. Ta zmienna jest dostępna 'z automatu' tylko na maszynie na heroku, u siebie lokalnie musisz ją sobie albo sam utworzyć albo tak napisać kod, że w przypadku braku takiej zmiennej funkcja create_engine użyje innego adresu do bazy.

ularom234 commented 5 years ago

Dlaczego za każdym razem jak próbuję coś zrobić mam tego typu błąd:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" FATAL: password authentication failed for user "postgres"

Czy ktoś się spotkał z czymś takim? Z czego to może wynikać?

FHoffmannCode commented 5 years ago

Dlaczego za każdym razem jak próbuję coś zrobić mam tego typu błąd:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres" FATAL: password authentication failed for user "postgres"

Czy ktoś się spotkał z czymś takim? Z czego to może wynikać?

proponuję utworzyć nowy issue na to pytanie, żeby nie robić śmietnika z tego wątku