简体   繁体   中英

Every time I try to launch my app to heroku it crashes (Python) and I don't know why

So I created an app with FastAPI and I did everything accordingly. I implemented my config vars in the Heroku dashboard and I added the postgresql addons. However, despite all this, I still receive pydantic errors when I log. Here is the sample code:

(venv) C:\Users\HP\OneDrive\Рабочий стол\PythonBootcamp\Python\fast_api-social-media>heroku logs -t
2022-01-30T17:36:20.843976+00:00 app[web.1]: File "/app/./app/config.py", line 20, in <module>
2022-01-30T17:36:20.843977+00:00 app[web.1]: settings = Settings()
2022-01-30T17:36:20.843990+00:00 app[web.1]: File "pydantic/env_settings.py", line 38, in pydantic.env_settings.BaseSettings.__init__
2022-01-30T17:36:20.844004+00:00 app[web.1]: File "pydantic/main.py", line 331, in pydantic.main.BaseModel.__init__
2022-01-30T17:36:20.844050+00:00 app[web.1]: pydantic.error_wrappers.ValidationError: 2 validation errors 
for Settings
2022-01-30T17:36:20.844050+00:00 app[web.1]: database_hostname
2022-01-30T17:36:20.844050+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:36:20.844051+00:00 app[web.1]: access_token_expire_minutes
2022-01-30T17:36:20.844051+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:36:24.575359+00:00 app[api]: Release v42 created by user carlstraumann@gmail.com
2022-01-30T17:36:24.575359+00:00 app[api]: Set ACCESS_TOKEN_EXPIRE_MINUTES config vars by user carlstraumann@gmail.com
2022-01-30T17:36:25.970437+00:00 heroku[web.1]: Restarting
2022-01-30T17:36:30.427409+00:00 heroku[web.1]: Starting process with command `uvicorn app.main:app --host=0.0.0.0 --port=${PORT:-5000}`
2022-01-30T17:36:31.971812+00:00 app[web.1]: INFO:     Uvicorn running on http://0.0.0.0:5337 (Press CTRL+C to quit)
2022-01-30T17:36:31.971890+00:00 app[web.1]: INFO:     Started parent process [4]
2022-01-30T17:36:34.033473+00:00 app[web.1]: Process SpawnProcess-1:
2022-01-30T17:36:34.034793+00:00 app[web.1]: Process SpawnProcess-2:
2022-01-30T17:36:34.035643+00:00 app[web.1]: Traceback (most recent call last):
2022-01-30T17:36:34.035742+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
2022-01-30T17:36:34.035742+00:00 app[web.1]: self.run()
2022-01-30T17:36:34.035745+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 108, in run
2022-01-30T17:36:34.035745+00:00 app[web.1]: self._target(*self._args, **self._kwargs)
2022-01-30T17:36:34.035747+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
2022-01-30T17:36:34.035748+00:00 app[web.1]: target(sockets=sockets)
2022-01-30T17:36:34.035759+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
2022-01-30T17:36:34.035760+00:00 app[web.1]: return asyncio.run(self.serve(sockets=sockets))
2022-01-30T17:36:34.035762+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/runners.py", 
line 44, in run
2022-01-30T17:36:34.035763+00:00 app[web.1]: return loop.run_until_complete(main)
2022-01-30T17:36:34.035773+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2022-01-30T17:36:34.035774+00:00 app[web.1]: return future.result()
2022-01-30T17:36:34.035776+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
2022-01-30T17:36:34.035776+00:00 app[web.1]: config.load()
2022-01-30T17:36:34.035791+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
2022-01-30T17:36:34.035791+00:00 app[web.1]: self.loaded_app = import_from_string(self.app)
2022-01-30T17:36:34.035813+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
2022-01-30T17:36:34.035814+00:00 app[web.1]: module = importlib.import_module(module_str)
2022-01-30T17:36:34.035816+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
2022-01-30T17:36:34.035816+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)  
2022-01-30T17:36:34.035827+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
2022-01-30T17:36:34.035830+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2022-01-30T17:36:34.035842+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2022-01-30T17:36:34.035844+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
2022-01-30T17:36:34.035856+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 850, in exec_module
2022-01-30T17:36:34.035858+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
2022-01-30T17:36:34.035884+00:00 app[web.1]: File "/app/./app/main.py", line 3, in <module>
2022-01-30T17:36:34.035885+00:00 app[web.1]: from . import models
2022-01-30T17:36:34.035896+00:00 app[web.1]: File "/app/./app/models.py", line 3, in <module>
2022-01-30T17:36:34.035896+00:00 app[web.1]: from .database import Base
2022-01-30T17:36:34.035898+00:00 app[web.1]: File "/app/./app/database.py", line 7, in <module>
2022-01-30T17:36:34.035899+00:00 app[web.1]: from .config import settings
2022-01-30T17:36:34.035910+00:00 app[web.1]: File "/app/./app/config.py", line 20, in <module>
2022-01-30T17:36:34.035910+00:00 app[web.1]: settings = Settings()
2022-01-30T17:36:34.035913+00:00 app[web.1]: File "pydantic/env_settings.py", line 38, in pydantic.env_settings.BaseSettings.__init__
2022-01-30T17:36:34.035924+00:00 app[web.1]: File "pydantic/main.py", line 331, in pydantic.main.BaseModel.__init__
2022-01-30T17:36:34.035946+00:00 app[web.1]: pydantic.error_wrappers.ValidationError: 1 validation error for Settings
2022-01-30T17:36:34.035947+00:00 app[web.1]: database_hostname
2022-01-30T17:36:34.035947+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:36:34.036613+00:00 app[web.1]: Traceback (most recent call last):
2022-01-30T17:36:34.036697+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
2022-01-30T17:36:34.036698+00:00 app[web.1]: self.run()
2022-01-30T17:36:34.036714+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 108, in run
2022-01-30T17:36:34.036714+00:00 app[web.1]: self._target(*self._args, **self._kwargs)
2022-01-30T17:36:34.036733+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
2022-01-30T17:36:34.036734+00:00 app[web.1]: target(sockets=sockets)
2022-01-30T17:36:34.036749+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
2022-01-30T17:36:34.036749+00:00 app[web.1]: return asyncio.run(self.serve(sockets=sockets))
2022-01-30T17:36:34.036764+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/runners.py", 
line 44, in run
2022-01-30T17:36:34.036764+00:00 app[web.1]: return loop.run_until_complete(main)
2022-01-30T17:36:34.036779+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2022-01-30T17:36:34.036779+00:00 app[web.1]: return future.result()
2022-01-30T17:36:34.036794+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
2022-01-30T17:36:34.036794+00:00 app[web.1]: config.load()
2022-01-30T17:36:34.036809+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
2022-01-30T17:36:34.036810+00:00 app[web.1]: self.loaded_app = import_from_string(self.app)
2022-01-30T17:36:34.036825+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
2022-01-30T17:36:34.036825+00:00 app[web.1]: module = importlib.import_module(module_str)
2022-01-30T17:36:34.036840+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
2022-01-30T17:36:34.036840+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)  
2022-01-30T17:36:34.036855+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
2022-01-30T17:36:34.036869+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2022-01-30T17:36:34.036884+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2022-01-30T17:36:34.036898+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 680, in _load_unlo
(venv) C:\Users\HP\OneDrive\Рабочий стол\PythonBootcamp\Python\fast_api-social-media>heroku ps:restart
Restarting dynos on ⬢ fastapi-sam... done

(venv) C:\Users\HP\OneDrive\Рабочий стол\PythonBootcamp\Python\fast_api-social-media>heroku logs -t
2022-01-30T17:36:24.575359+00:00 app[api]: Set ACCESS_TOKEN_EXPIRE_MINUTES config vars by user carlstraumann@gmail.com
2022-01-30T17:36:25.970437+00:00 heroku[web.1]: Restarting
2022-01-30T17:36:30.427409+00:00 heroku[web.1]: Starting process with command `uvicorn app.main:app --host=0.0.0.0 --port=${PORT:-5000}`
2022-01-30T17:36:31.971812+00:00 app[web.1]: INFO:     Uvicorn running on http://0.0.0.0:5337 (Press CTRL+C to quit)
2022-01-30T17:36:31.971890+00:00 app[web.1]: INFO:     Started parent process [4]
2022-01-30T17:36:34.033473+00:00 app[web.1]: Process SpawnProcess-1:
2022-01-30T17:36:34.034793+00:00 app[web.1]: Process SpawnProcess-2:
2022-01-30T17:36:34.035643+00:00 app[web.1]: Traceback (most recent call last):
2022-01-30T17:36:34.035742+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
2022-01-30T17:36:34.035742+00:00 app[web.1]: self.run()
2022-01-30T17:36:34.035745+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 108, in run
2022-01-30T17:36:34.035745+00:00 app[web.1]: self._target(*self._args, **self._kwargs)
2022-01-30T17:36:34.035747+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
2022-01-30T17:36:34.035748+00:00 app[web.1]: target(sockets=sockets)
2022-01-30T17:36:34.035759+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
2022-01-30T17:36:34.035760+00:00 app[web.1]: return asyncio.run(self.serve(sockets=sockets))
2022-01-30T17:36:34.035762+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/runners.py", line 44, in run
2022-01-30T17:36:34.035763+00:00 app[web.1]: return loop.run_until_complete(main)
2022-01-30T17:36:34.035773+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2022-01-30T17:36:34.035774+00:00 app[web.1]: return future.result()
2022-01-30T17:36:34.035776+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
2022-01-30T17:36:34.035776+00:00 app[web.1]: config.load()
2022-01-30T17:36:34.035791+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
2022-01-30T17:36:34.035791+00:00 app[web.1]: self.loaded_app = import_from_string(self.app)
2022-01-30T17:36:34.035813+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
2022-01-30T17:36:34.035814+00:00 app[web.1]: module = importlib.import_module(module_str)
2022-01-30T17:36:34.035816+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
2022-01-30T17:36:34.035816+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2022-01-30T17:36:34.035827+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
2022-01-30T17:36:34.035830+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2022-01-30T17:36:34.035842+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2022-01-30T17:36:34.035844+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
2022-01-30T17:36:34.035856+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 850, in exec_module
2022-01-30T17:36:34.035858+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
2022-01-30T17:36:34.035884+00:00 app[web.1]: File "/app/./app/main.py", line 3, in <module>
2022-01-30T17:36:34.035885+00:00 app[web.1]: from . import models
2022-01-30T17:36:34.035896+00:00 app[web.1]: File "/app/./app/models.py", line 3, in <module>
2022-01-30T17:36:34.035896+00:00 app[web.1]: from .database import Base
2022-01-30T17:36:34.035898+00:00 app[web.1]: File "/app/./app/database.py", line 7, in <module>
2022-01-30T17:36:34.035899+00:00 app[web.1]: from .config import settings
2022-01-30T17:36:34.035910+00:00 app[web.1]: File "/app/./app/config.py", line 20, in <module>
2022-01-30T17:36:34.035910+00:00 app[web.1]: settings = Settings()
2022-01-30T17:36:34.035913+00:00 app[web.1]: File "pydantic/env_settings.py", line 38, in pydantic.env_settings.BaseSettings.__init__
2022-01-30T17:36:34.035924+00:00 app[web.1]: File "pydantic/main.py", line 331, in pydantic.main.BaseModel.__init__
2022-01-30T17:36:34.035946+00:00 app[web.1]: pydantic.error_wrappers.ValidationError: 1 validation error for Settings
2022-01-30T17:36:34.035947+00:00 app[web.1]: database_hostname
2022-01-30T17:36:34.035947+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:36:34.036613+00:00 app[web.1]: Traceback (most recent call last):
2022-01-30T17:36:34.036697+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
2022-01-30T17:36:34.036698+00:00 app[web.1]: self.run()
2022-01-30T17:36:34.036714+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 108, in run
2022-01-30T17:36:34.036714+00:00 app[web.1]: self._target(*self._args, **self._kwargs)
2022-01-30T17:36:34.036733+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
2022-01-30T17:36:34.036734+00:00 app[web.1]: target(sockets=sockets)
2022-01-30T17:36:34.036749+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
2022-01-30T17:36:34.036749+00:00 app[web.1]: return asyncio.run(self.serve(sockets=sockets))
2022-01-30T17:36:34.036764+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/runners.py", line 44, in run
2022-01-30T17:36:34.036764+00:00 app[web.1]: return loop.run_until_complete(main)
2022-01-30T17:36:34.036779+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2022-01-30T17:36:34.036779+00:00 app[web.1]: return future.result()
2022-01-30T17:36:34.036794+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
2022-01-30T17:36:34.036794+00:00 app[web.1]: config.load()
2022-01-30T17:36:34.036809+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
2022-01-30T17:36:34.036810+00:00 app[web.1]: self.loaded_app = import_from_string(self.app)
2022-01-30T17:36:34.036825+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
2022-01-30T17:36:34.036825+00:00 app[web.1]: module = importlib.import_module(module_str)
2022-01-30T17:36:34.036840+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
2022-01-30T17:36:34.036840+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2022-01-30T17:36:34.036855+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
2022-01-30T17:36:34.036869+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2022-01-30T17:36:34.036884+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2022-01-30T17:36:34.036898+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
2022-01-30T17:36:34.036913+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 850, in exec_module
2022-01-30T17:36:34.036927+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
2022-01-30T17:36:34.036942+00:00 app[web.1]: File "/app/./app/main.py", line 3, in <module>
2022-01-30T17:36:34.036942+00:00 app[web.1]: from . import models
2022-01-30T17:36:34.036957+00:00 app[web.1]: File "/app/./app/models.py", line 3, in <module>
2022-01-30T17:36:34.036957+00:00 app[web.1]: from .database import Base
2022-01-30T17:36:34.036972+00:00 app[web.1]: File "/app/./app/database.py", line 7, in <module>
2022-01-30T17:36:34.036973+00:00 app[web.1]: from .config import settings
2022-01-30T17:36:34.036988+00:00 app[web.1]: File "/app/./app/config.py", line 20, in <module>
2022-01-30T17:36:34.036988+00:00 app[web.1]: settings = Settings()
2022-01-30T17:36:34.037002+00:00 app[web.1]: File "pydantic/env_settings.py", line 38, in pydantic.env_settings.BaseSettings.__init__
2022-01-30T17:36:34.037017+00:00 app[web.1]: File "pydantic/main.py", line 331, in pydantic.main.BaseModel.__init__
2022-01-30T17:36:34.037044+00:00 app[web.1]: pydantic.error_wrappers.ValidationError: 1 validation error for Settings
2022-01-30T17:36:34.037045+00:00 app[web.1]: database_hostname
2022-01-30T17:36:34.037045+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:36:37.912121+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2022-01-30T17:36:37.945001+00:00 heroku[web.1]: Stopping process with SIGKILL
2022-01-30T17:36:38.178707+00:00 heroku[web.1]: Process exited with status 137
2022-01-30T17:36:49.093141+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2022-01-30T17:36:49.178611+00:00 app[web.1]: INFO:     Stopping parent process [4]
2022-01-30T17:36:49.396356+00:00 heroku[web.1]: Process exited with status 0
2022-01-30T17:36:59.178430+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2022-01-30T17:36:59.235776+00:00 heroku[web.1]: Stopping process with SIGKILL
2022-01-30T17:36:59.405074+00:00 heroku[web.1]: Process exited with status 137
2022-01-30T17:37:05.783578+00:00 heroku[web.1]: Restarting
2022-01-30T17:37:10.878424+00:00 heroku[web.1]: Starting process with command `uvicorn app.main:app --host=0.0.0.0 --port=${PORT:-5000}`
2022-01-30T17:37:12.206224+00:00 app[web.1]: INFO:     Uvicorn running on http://0.0.0.0:33262 (Press CTRL+C to quit)
2022-01-30T17:37:12.206331+00:00 app[web.1]: INFO:     Started parent process [4]
2022-01-30T17:37:16.049293+00:00 app[web.1]: Process SpawnProcess-1:
2022-01-30T17:37:16.051032+00:00 app[web.1]: Traceback (most recent call last):
2022-01-30T17:37:16.055811+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
2022-01-30T17:37:16.055813+00:00 app[web.1]: self.run()
2022-01-30T17:37:16.055835+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 108, in run
2022-01-30T17:37:16.055836+00:00 app[web.1]: self._target(*self._args, **self._kwargs)
2022-01-30T17:37:16.055853+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
2022-01-30T17:37:16.055854+00:00 app[web.1]: target(sockets=sockets)
2022-01-30T17:37:16.055870+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
2022-01-30T17:37:16.055872+00:00 app[web.1]: return asyncio.run(self.serve(sockets=sockets))
2022-01-30T17:37:16.055889+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/runners.py", line 44, in run
2022-01-30T17:37:16.055889+00:00 app[web.1]: return loop.run_until_complete(main)
2022-01-30T17:37:16.055906+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2022-01-30T17:37:16.055906+00:00 app[web.1]: return future.result()
2022-01-30T17:37:16.055923+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
2022-01-30T17:37:16.055923+00:00 app[web.1]: config.load()
2022-01-30T17:37:16.055940+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
2022-01-30T17:37:16.055940+00:00 app[web.1]: self.loaded_app = import_from_string(self.app)
2022-01-30T17:37:16.055956+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
2022-01-30T17:37:16.055957+00:00 app[web.1]: module = importlib.import_module(module_str)
2022-01-30T17:37:16.055973+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
2022-01-30T17:37:16.055973+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2022-01-30T17:37:16.055990+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
2022-01-30T17:37:16.056006+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2022-01-30T17:37:16.056022+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2022-01-30T17:37:16.056039+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
2022-01-30T17:37:16.056055+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 850, in exec_module
2022-01-30T17:37:16.056072+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
2022-01-30T17:37:16.056088+00:00 app[web.1]: File "/app/./app/main.py", line 3, in <module>
2022-01-30T17:37:16.056089+00:00 app[web.1]: from . import models
2022-01-30T17:37:16.056105+00:00 app[web.1]: File "/app/./app/models.py", line 3, in <module>
2022-01-30T17:37:16.056106+00:00 app[web.1]: from .database import Base
2022-01-30T17:37:16.056122+00:00 app[web.1]: File "/app/./app/database.py", line 7, in <module>
2022-01-30T17:37:16.056122+00:00 app[web.1]: from .config import settings
2022-01-30T17:37:16.056138+00:00 app[web.1]: File "/app/./app/config.py", line 20, in <module>
2022-01-30T17:37:16.056139+00:00 app[web.1]: settings = Settings()
2022-01-30T17:37:16.056155+00:00 app[web.1]: File "pydantic/env_settings.py", line 38, in pydantic.env_settings.BaseSettings.__init__
2022-01-30T17:37:16.056172+00:00 app[web.1]: File "pydantic/main.py", line 331, in pydantic.main.BaseModel.__init__
2022-01-30T17:37:16.056206+00:00 app[web.1]: pydantic.error_wrappers.ValidationError: 1 validation error for Settings
2022-01-30T17:37:16.056207+00:00 app[web.1]: database_hostname
2022-01-30T17:37:16.056207+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:37:16.083410+00:00 app[web.1]: Process SpawnProcess-2:
2022-01-30T17:37:16.084901+00:00 app[web.1]: Traceback (most recent call last):
2022-01-30T17:37:16.090024+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
2022-01-30T17:37:16.090025+00:00 app[web.1]: self.run()
2022-01-30T17:37:16.090697+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/multiprocessing/process.py", line 108, in run
2022-01-30T17:37:16.090699+00:00 app[web.1]: self._target(*self._args, **self._kwargs)
2022-01-30T17:37:16.090717+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
2022-01-30T17:37:16.090718+00:00 app[web.1]: target(sockets=sockets)
2022-01-30T17:37:16.090734+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
2022-01-30T17:37:16.090735+00:00 app[web.1]: return asyncio.run(self.serve(sockets=sockets))
2022-01-30T17:37:16.090752+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/runners.py", line 44, in run
2022-01-30T17:37:16.090752+00:00 app[web.1]: return loop.run_until_complete(main)
2022-01-30T17:37:16.090768+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2022-01-30T17:37:16.090769+00:00 app[web.1]: return future.result()
2022-01-30T17:37:16.090785+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
2022-01-30T17:37:16.090785+00:00 app[web.1]: config.load()
2022-01-30T17:37:16.090801+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
2022-01-30T17:37:16.090802+00:00 app[web.1]: self.loaded_app = import_from_string(self.app)
2022-01-30T17:37:16.090817+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
2022-01-30T17:37:16.090818+00:00 app[web.1]: module = importlib.import_module(module_str)
2022-01-30T17:37:16.090834+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
2022-01-30T17:37:16.090835+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2022-01-30T17:37:16.090850+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
2022-01-30T17:37:16.090867+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
2022-01-30T17:37:16.090884+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
2022-01-30T17:37:16.090900+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
2022-01-30T17:37:16.090916+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 850, in exec_module
2022-01-30T17:37:16.090932+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
2022-01-30T17:37:16.090948+00:00 app[web.1]: File "/app/./app/main.py", line 3, in <module>
2022-01-30T17:37:16.090948+00:00 app[web.1]: from . import models
2022-01-30T17:37:16.090964+00:00 app[web.1]: File "/app/./app/models.py", line 3, in <module>
2022-01-30T17:37:16.090965+00:00 app[web.1]: from .database import Base
2022-01-30T17:37:16.090981+00:00 app[web.1]: File "/app/./app/database.py", line 7, in <module>
2022-01-30T17:37:16.090982+00:00 app[web.1]: from .config import settings
2022-01-30T17:37:16.090998+00:00 app[web.1]: File "/app/./app/config.py", line 20, in <module>
2022-01-30T17:37:16.090998+00:00 app[web.1]: settings = Settings()
2022-01-30T17:37:16.091014+00:00 app[web.1]: File "pydantic/env_settings.py", line 38, in pydantic.env_settings.BaseSettings.__init__
2022-01-30T17:37:16.091030+00:00 app[web.1]: File "pydantic/main.py", line 331, in pydantic.main.BaseModel.__init__
2022-01-30T17:37:16.091066+00:00 app[web.1]: pydantic.error_wrappers.ValidationError: 1 validation error for Settings
2022-01-30T17:37:16.091066+00:00 app[web.1]: database_hostname
2022-01-30T17:37:16.091067+00:00 app[web.1]: field required (type=value_error.missing)
2022-01-30T17:37:27.864676+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2022-01-30T17:37:27.907957+00:00 app[web.1]: INFO:     Stopping parent process [4]
2022-01-30T17:37:28.081625+00:00 heroku[web.1]: Process exited with status 0
2022-01-30T17:38:11.062535+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2022-01-30T17:38:11.137884+00:00 heroku[web.1]: Stopping process with SIGKILL
2022-01-30T17:38:11.438440+00:00 heroku[web.1]: Process exited with status 137
2022-01-30T17:38:11.491140+00:00 heroku[web.1]: State changed from starting to crashed

As you can see it is giving out pydanctic errors. I did restart via heroku ps:restart, too.

This is my config.py file

from pydantic import BaseSettings  
from app import database   

class Settings(BaseSettings):     
 database_hostname: str     
 database_port: str     
 database_password: str     
 database_name: str     
 database_username: str     
 secret_key: str     
 algorithm: str     
 access_token_expire_minutes: int      
  class Config:         
    env_file = ".env"   

settings = Settings()

You are using individual settings for your database hostname, port, user, password, and database name. But Heroku provides database credentials as a single value, via the DATABASE_URL environment variable.

Database URLs are quite common, and there's a good chance you can just pass one into whatever you're using to create your database connection.

I suggest you modify your settings class to do the same:

class Settings(BaseSettings):
    database_url: str
    # ...other, non-database stuff

Then you can update your .env file to contain a database URL instead of individual values, eg something like

# Replace
#
# DATABASE_HOSTNAME=database-host.tld
# DATABASE_PORT=5432
# DATABASE_PASSWORD=password
# DATABASE_NAME=project-database
# DATABASE_USERNAME=user
#
# with
#
DATABASE_URL=postgres://user:password@database-host.tld:5432/project-database

If you really want to keep using individual values you'll have to parse the DATABASE_URL , eg using urllib.parse.urlparse .

Note that your .env file should be ignored. It should never make its way to Heroku.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM