質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Python 3.x

    8901questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Heroku

    1108questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

  • Flask

    307questions

    FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

herokuで公開されているページに書き込まれた情報をデータベースとして保存したいがエラーとなる。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 77

meJ15

score 29

前提・実現したいこと

Herokuを使ってpythonのflaskで作ったウェブアプリケーションを公開することができました。
要約アプリ(クロムでしか動かないです)
次はこのウェブアプリケーションに書き込まれた情報と結果をDBに書き込み、それをherokuのサーバーに保存。その後参照したいと考えています。

下のようにユーザが書き込んだ情報や日付と結果をDBに書き込み、それを見たいと考えています。
イメージ

上のようなシステムを構築するためにpythonで「データベースを作って、インサートしてheroku上のサーバに保存」するプログラムを書き、ローカルで上手く動いているのを確認して、Heroku上にアップロードしました。しかしURLにアクセスするとApplication eroor となりました。

参考サイト
参考

発生している問題・エラーメッセージ

2019-03-15T02:06:33.228004+00:00 app[web.1]: [2019-03-15 02:06:33 +0000] [11] [INFO] Booting worker with pid: 11
2019-03-15T02:06:33.825657+00:00 heroku[web.1]: State changed from starting to up
2019-03-15T02:06:55.075985+00:00 heroku[web.1]: State changed from up to crashed
2019-03-15T02:06:54.875006+00:00 heroku[web.1]: Process running mem=1256M(245.3%)
2019-03-15T02:06:54.875141+00:00 heroku[web.1]: Error R15 (Memory quota vastly exceeded)
2019-03-15T02:06:54.875232+00:00 heroku[web.1]: Stopping process with SIGKILL
2019-03-15T02:06:55.005964+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=miyarecruit.herokuapp.com request_id=b6c49dbe-f088-4887-b89e-bb53bc8cc123 fwd="133.95.168.128" dyno=web.1 connect=0ms service=19292ms status=503 bytes=0 protocol=https
2019-03-15T02:06:55.062834+00:00 heroku[web.1]: Process exited with status 137
2019-03-15T02:07:14.143641+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=miyarecruit.herokuapp.com request_id=0d9750df-a411-4769-9488-10c3d3e9c617 fwd="133.95.168.128" dyno= connect= service= status=503 bytes= protocol=https

該当のソースコード

変更点 モジュールに文章と文字数をいれて、帰ってきた結果と時間と元の文章をDBに追加する処理を加えています。

@app.route('/predict/',methods=['GET','POST'])
def predict():

    sum_sentence,sum_num = summarize.dosum(num,sentence)


    #DBに追加して、書き込み
    #データベース接続のため
    connection = psycopg2.connect("host=ec2-23-23-195-205.compute-1.amazonaws.com port=5432 dbname=demjsgs9 user=beibva password=9eb69de7620b3fbf0fbdf3b5c0973961b423e94d776")
    cursor = connection.cursor()
    cursor.execute("select version()")

    #時間確保のため

    import datetime
    dt_now = datetime.datetime.now()
    #print(dt_now)
    dt_now = str(dt_now)
    #print(dt_now)

    cursor.execute("INSERT INTO test2 (time, input, output) VALUES (%s, %s, %s)", (dt_now, sentence, sum_sentence))
    cursor.execute("SELECT * FROM test2;")
    cursor.fetchone()
    connection.commit()
    cursor.close
    connection.close()


    return json.dumps({
        "参照サイト数":sum_sentence,
        "要約文字数":str(sum_num),

    }

試したこと

DBの処理を追加する前はログが下のようになっていました。
イメージ説明

しかしいまはイ![イメージ説明となっています。
ログで変わったところというとメモリ量2倍ぐらい変わっているのですが、なぜそうかわってしまってるのかがわかりません。
(色々試しているのですが、DB処理を加える前のプログラムをherokuに送ってもApplication error となってしまうので、今はロールバックで上手くいった時のを残しています。)

プログラムは下のようにしています。

git add .
git commit -m""
git heroku push master 

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • meJ15

    2019/03/15 15:59

    ネットリテラシーが低すぎました。ありがとうございます。
    よくわからないのですが、使えるようになりました。

    キャンセル

  • ryu22e

    2019/03/15 16:12

    「よくわからないのですが、使えるようになりました」というのは、私のコメントへの返信ですか? それとも別の話?
    私のコメントへの返信なら、ちょっと意味が分からないのですが……

    キャンセル

  • meJ15

    2019/03/15 16:19

    すみません。あなたのコメントの返信ではなくウェブページの話です。。

    ユーザ名とパスワードを載せてしまっていることに気付かず、あなたのコメントで気付きました。ありがとうございます。(ネットリテラシーが低すぎました。ありがとうございます。)

    話変わりまして自分の要約アプリなのですが、昼寝して起きて動かしてみると、ウェブページが動くようになっていました(よくわからないのですが、使えるようになりました)

    ということが言いたかったです。迷惑をおかけしました。

    キャンセル

回答 1

check解決した方法

0

heroku run rake db:migrate
heroku restart をすることでうまく動くようになりました

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python 3.x

    8901questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Heroku

    1108questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

  • Flask

    307questions

    FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

  • トップ
  • Flaskに関する質問
  • herokuで公開されているページに書き込まれた情報をデータベースとして保存したいがエラーとなる。