DaftAcademy / daftacademy-python_levelup-spring2021

19 stars 10 forks source link

zmienna środowiskowa SQLALCHEMY_DATABASE_URL lokalnie #38

Closed mateusz91t closed 3 years ago

mateusz91t commented 3 years ago

Windows 10 + PyCharm Czy ustawiacie lokalnie tą zmienną w swoim venv? Teoretycznie można w trakcie dewelopmentu lokalnie zakomentować to i pracować na ręcznie wklepanym DB URI

# engine = create_engine(SQLALCHEMY_DATABASE_URL)
engine = create_engine("postgresql://postgres:DaftAcademy@127.0.0.1:5555/postgres")

To działa, ale macie jakieś bardziej eleganckie rozwiązanie?

Jeśli wywołam uruchomienie uvicorna jak było na wykładzie, to mi się wysypie, że nie wie co to SQLALCHEMY_DATABASE_URL:

(venv) D:\Mateusz\nauka\python\python_lvl_up\PyLvlUp1>SQLALCHEMY_DATABASE_URL="postgresql://postgres:DaftAcademy@127.0.0.1:5555/postgres" uvicorn app.main:app --reload --host=0.0.0.0 --port=${PORT:-5000}
'SQLALCHEMY_DATABASE_URL' is not recognized as an internal or external command,
operable program or batch file.

Nic nie daje dodanie tej zmiennej do zminnych środowiskowych PyCharma. Pewnie dlatego, że skoro startuję z terminala aplikację, a nie z opcji Run app, to jakoś w terminalu trzeba dodać tą zmienną? :P 2021-05-17_14h52_11

adlerka commented 3 years ago

Spróbuj ustawić zmienną w terminalu poprzez komendę set

set SQLALCHEMY_DATABASE_URL=postgresql://postgres:DaftAcademy@127.0.0.1:5555/northwind

Tylko tu już podajesz url bez otaczających go apostrofów.

korowiov commented 3 years ago

https://stackoverflow.com/questions/46566536/how-can-you-set-environment-variables-in-a-virtualenv-in-windows ?Ewentualnie jest pakiet dot-env dla pythona, tworzysz plik .env z zmiennymi środowiskowymi i za pomocą tego pakietu ładuje do apki te zmienne z .env'a jako zmienne środowiskowe dostępne w apce.

mateusz91t commented 3 years ago

@adlerka @korowiov Dziękuję Wam! It works! ❤️

mateusz91t commented 3 years ago

Przy okazji, gdyby ktoś chciał korzystać z pytest i tej zmiennej to wystarczy dodać plik pytest.ini, a w nim: https://github.com/MobileDynasty/pytest-env