Masahiro Okubo

Flask heroku でmysql + sqlalchemy テーブルが作れない

Flask heroku でmysql + sqlalchemy テーブルが作れない

久々に超絶はまってしまいました

初めてpythonのフレームワークflaskをherokuにデプロイし終えたところなのですが、
2日ほどかかりました。。。。。

とりあえず解決策は以下の通りです

問題点は、データベース名の後のクエスチョンマーク以降を削除することです
それだけで問題を解決できます

# こっちは間違い
app.config['SQLALCHEMY_DATABASE_URI'] =  'mysql://your_username:your_password@host_name/database_name?reconnect=true'

# 以下の用に変更する! 
app.config['SQLALCHEMY_DATABASE_URI'] =  'mysql://your_username:your_password@host_name/database_name'

私自身クライアントサイドがメインで、デプロイに関わることが少なかったので大変勉強になりました。
あと、flaskは情報量が少ないのでちょっときついな〜とも感じましたけど、
typescriptには劣りますがストレスフリーに書けるのでやっぱり好きだなという印象です

ちなみにこちらエラー内容です。困っている人が見つけやすくなるように、SEO目的で載せさせてもらいます

Traceback (most recent call last):
  File "app.py", line 15, in <module>
    app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URL']
  File "/Users/Masahiro/.pyenv/versions/3.5.1/lib/python3.5/os.py", line 683, in __getitem__
    raise KeyError(key) from None
KeyError: 'DATABASE_URL'

後、mysql と組み合わせで pymysqlやmysqlclientなどのライブラリも調べまくって、
python3系に対応していないから問題が起きたのではないか?とも思いましたが、おそらく関係ないです

事実、僕自身がちょっとした修正で解決できたので。

今回はさすがに疲れました。・・・

参考にした記事
たくさんありすぎてどれかわからないです。すみません;;


関連記事

copyright© 2016-2021 Masahiro Okubo