Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/poc#1 crud #14

Closed
wants to merge 13 commits into from
Closed

Feature/poc#1 crud #14

wants to merge 13 commits into from

Conversation

gotoh-poclab
Copy link
Collaborator

The asyncio extension requires an async driver to be used. The loaded 'psycopg2' is not async.

このエラーが出るのが気になっています。
postgresqlで、そのまま大丈夫でしょうか。

@takasaki376
Copy link
Collaborator

db.pyの書き方を変えた際に、参考にした資料(URL)を教えてください。こちらを参考にすると、create_async_engineを使用する場合は、psycopg2を使ってはいけないきがします。

The asyncio extension requires an async driver to be used. The loaded 'psycopg2' is not async.はどのタイミングで発生しますか?
上の内容と重なるのではないかと思いますが、どこで発生するエラーかわかっていないです。

@gotoh-poclab
Copy link
Collaborator Author

https://qiita.com/y_p_e/items/0545f71b485b504494d4
を見ながら、書き換えてみます。ありがとうございます。

poclab added 2 commits March 6, 2022 10:04
DB.pyは、postgresql+syncpg
migrate_dbは、postgresql+psycopg2
にする
@gotoh-poclab gotoh-poclab temporarily deployed to qin-todo March 6, 2022 03:27 Inactive
@gotoh-poclab
Copy link
Collaborator Author

@takasaki376

https://qiita.com/y_p_e/items/0545f71b485b504494d4
を見ながら書き換えて見て、ローカルでこのサイトと同じように動くことを確認しました。

そのさきのデプロイのテストも行っています。

教えてもらった通りHeroku CLIをインストールして、
https://devcenter.heroku.com/categories/command-line

heroku stack:set container

でdockerのコンテイナーからdeployできるようにしたら、デプロイ自体はできるようになりました。

ただし、アクセスするとアプリケーションエラーになります。
https://qin-todo.herokuapp.com/hello

何がエラーの原因かわかっていないのですがローカルで行っていた以下の操作はデプロイの時に行えていないですかね。
docker-compose run --entrypoint "poetry install" qin-todo

他にも思い当たることやヒントになるようなサイトがありましたら、教えてもらえると助かります。

@gotoh-poclab gotoh-poclab mentioned this pull request Mar 6, 2022
@takasaki376
Copy link
Collaborator

何がエラーの原因かわかっていないのですがローカルで行っていた以下の操作はデプロイの時に行えていないですかね。

Herokuが対応していないようです。
関連する情報は、下記の2つ見つかりました。
requirements.txtを用意するのが良いと思いますが、パッケージ管理としてはpoetry使いたいので、上の記事にある内容が良さそうな気がします。

https://zenn.dev/peperoncicicino/articles/ab71fc801ceeee
https://teratail.com/questions/245930

@takasaki376
Copy link
Collaborator

poetryについては、対応して欲しいというISSUEがいつくかありますが、対応予定がなさそうです。一番下のISSUEが2021年ですが、対応予定がないと回答されています。

heroku/heroku-buildpack-python#801
heroku/heroku-buildpack-python#867
heroku/heroku-buildpack-python#869
heroku/heroku-buildpack-python#1210

@gotoh-poclab gotoh-poclab temporarily deployed to qin-todo March 6, 2022 05:11 Inactive
@gotoh-poclab gotoh-poclab temporarily deployed to qin-todo March 6, 2022 05:37 Inactive
@gotoh-poclab
Copy link
Collaborator Author

requirements.txtを用意して検討中です。
今のところ、難しいです。

ローカルではDockerfileを使って、Herokuでは別のDockerfile.herokuを参照するようにheroku.ymlにしました。

Dockerfileの書き方とかでエラーになっている気がします。

Copy link
Collaborator

@takasaki376 takasaki376 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

requirements.txtはどうやって作成しましたか?
下記のコマンドの実行結果と違うので、気になります。

docker-compose run --entrypoint "pip freeze" qin-todo

@gotoh-poclab
Copy link
Collaborator Author

これです。

docker-compose exec qin-todo poetry export -f requirements.txt -o requirements.txt

poetryに入っているものを出力したくて、下記を参考にしました。
https://minerva.mamansoft.net/Poetry/Poetry%E3%81%A7requirements.txt%E3%82%92%E4%BD%9C%E6%88%90

@takasaki376
Copy link
Collaborator

oetryに入っているものを出力したくて、下記を参考にしました。

こちらは大丈夫そうですね。hashという行が気になっていました。

下記の行ですが、元々書かれていた"poetry", "run"の二つのキーワードで意味のあるコマンドになるのではないかと思います。
poetryを使わないなら、代わりにGunicornなどのサーバーが必要だと思います。

ENTRYPOINT ["run", "uvicorn", "api.main:app", "--host", "0.0.0.0", "--reload"]

poetry runの参考記事

Gunicornの参考記事

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants