ビジネスパーソン・ガジェット置場 empty lot for business

営業や仕事、それに伴う生活を便利に楽にするツール、ガジェットを作ります。既にあるツールも自分用にカスタマイズ。

python: Flaskアプリをherokuにアップする

備忘録です。

今回はFlaskで作ったアプリをherokuにアップする際の一連のコマンドをまとめます。

herokuへのアップ方法

 

①Gitのリポジトリへプッシュ

GitへログインしNewからリモートリポジトリを作成後、ターミナルで以下、コマンド順に入力

※今回はtestというアカウントのsampleというリポジトリとします。

 

1. ローカルリポジトリの作成

git init

 

2. ローカルリポジトリにファイルを追加

git add .

3. コメントを入力

git commit -m "first commit"

 

4. ローカルリポジトリとリモートリポジトリをつなぐ

git remote add origin https://github.com/test/sample.git

 

5. リモートリポジトリにファイルをpush

git push -u origin master

 

6. これ以降は編集後、追加するときは下記のように繰り返す。

git add .  # . は全部という意味、追加したファイル名のみでもOK
git cimmit -m "second push"
git push

 

②herokuへのプッシュ

0. gunicornとpsycopg2をpip3でインストール

上記を仮想環境でインストールすること

 

herokuにはCLIでログインする。まず、Procfileやrequirements.txtを作成

 

1. requirements.txtの作成

pip3 freeze > requirements.txt

※このやり方はルートディレクトリでpip3でインストールしている全ても入ってくるので注意。

2. Procfileの作成

echo web: gunicorn app:app > Procfile

※gunicornを使用した例です。Gunicornは、PythonのWeb Server Gateway Interfaceを実装するHTTPサーバー。

 

3. herokuにアプリの作成

heroku loginでherokuにログインし

heroku create アプリ名

 

4. herokuでpostgresqlをセット

heroku addons:create heroku-postgresql:hobby-dev --app アプリ名

 

5. データベースのurlを取得

heroku config --app アプリ名

※herokuにプッシュする前にローカルで設定していたデータベースのurlをこちらに変更しgitにプッシュしておく。

※注意 app.config['SQLALCHEMY_DATABASE_URI'] = 'postgre: →'postgresqlに変更必要

 

6. リモートをつなぐ

git remote add heroku https://git.heroku.com/annonapp.git

※このurl部分はheroku createした際に表示される。

 

7. herokuへプッシュ

git push heroku master

問題なければこれで公開されるが、herokuのデータベースをマイグレーションする

 

8. herokuのpythonインタープリンタに接続

heroku run python

 

9. マイグレーションの実行

>>>from app import db
>>>db.create_all()

※dbはデータベースを格納した変数名

ローカルで作成したデータはプッシュされないので注意

10. その他コード

heroku pg:reset  #DATABASE DBのリセット
heroku pg:info       #DBの情報
heroku pg:psql -c "\d"   # dbの確認

 

その他

sqliteを使用する際にapp.pyでエラー対処で色々と設定したが、herokuにアップする際はそのままでOK