🐶

flask db upgradeすると「password authentication failed for user」が出る

2023/08/23に公開

はじめに

沼ったのでメモ。2023 年 8 月 23 日時点での情報です。

heroku の console 上で flask db upgrade をしたら「password authentication failed for user」が出ました。今まで特に問題なく DB と接続できていたのに、なぜか急に出るようになったので、原因を調べてみました。

原因

同じ原因で接続できなかった人が以下の issue にいました。SQLAlchemy のバグ対応でリリースされたバージョンに移行すると起こる様子。古い Flask-Migrate の「flask db init」で生成された env.py を使っていると起こるようです。この時リリースされた Flask-Migrate のバージョンは 4.0.4 です。

対応

migrations フォルダ内の versions フォルダの中身を退避させ、残りを「migrations ごと」削除する。その後、「flask db init」を実行します。生成された versions に退避させたファイルを戻します。これで治ります。その後、普通にマイグレーション作業してください。

おわりに

なぜかローカル環境で再現しなかったので、まだ解せない状態です。
issue に書いてあったので、かすり傷ですみました。そんなに起こることではないと思いますが、参考程度に。

Discussion