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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

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

Python 3.x

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

Q&A

解決済

1回答

530閲覧

herokuのデータベースを使わない場合はどのような弊害が起こるのか

meJ15

総合スコア55

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

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

Python 3.x

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

0グッド

2クリップ

投稿2019/03/26 11:49

前提・実現したいこと

djangoで一つのコミュニティのなかのユーザ(例.職場の営業部)がどんどん情報を登録していくようなウェブサービスを作っています。
(ユーザ数を増やしたくなかったので、ユーザIDは一つだけでID=eigo)
記入項目は下の感じです。

名前
趣味
誕生日

djangoではDBにsqliteを使っていてそれをherokuにアップしたところうまく動作しました。
herokuではpostgsqlだけ使えるそうですが、いま現在使っていないのにうまく動作しています。
これはどのようなことがおこっているのでしょうか?

複数の人が一気に情報を登録しようとすると、サーバに置かれたdb.sqlite3が読み込めたり書き込めなくなったりするのでしょうか?(わたしのイメージではプログラムで「"name.txt"開いて名前を書き込んで」っていう動作をさせようとするときにすでにその
"name.txt"を開いてい、["permission deny"]となるようなことが起こるのかなと思っています。」)

1.herokuのDB(postgresql)を使ってないのになぜうまく動いているのか?
2.この場合どのような弊害が起こるのか?
ということです
よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

SqliteのファイルはHeroku上に置かれますが、Herokuのディスクは最低1日に1回、内容がリセットされます

つまり、

1.herokuのDB(postgresql)を使ってないのになぜうまく動いているのか?

ディスクのリセットまでは正常に動作します。

2.この場合どのような弊害が起こるのか?

毎日、データベースの内容がリセットされます。

(もちろん、Sqliteが読み取り専用、というようにリセットされて問題ないならそれで構いません)

投稿2019/03/26 12:17

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meJ15

2019/03/26 12:48

回答ありがとうございます。 しかし 3日前ぐらいから動かしていて、すでに他の人が色々情報を追加しているのですが、そのデータが消えることなくウェブで見ることができています。 この方のページを参考にgithubのプログラムの形式を少し変えただけなのでデータベース関係に変更点はないはずです https://qiita.com/okoppe8/items/4cc0f87ea933749f5a49
maisumakun

2019/03/26 12:52

上記のQiita記事を見ると、「開発環境ではSQLiteというデータベースを使います。」と明記してあります。 Herokuに反映した分については、django-heroku経由でHerokuのデータベースを使うようになっています(Sqliteではありません)。
meJ15

2019/03/27 04:20 編集

すみません色々混乱してきました。 自分の中で解釈して間違えてたら教えていただけると嬉しいです。 今回の場合 開発環境ではSQLite ウェブアプリとしてはHerokuのデータベース(PostgreSQL)を使ってるということですか? 一度postgresqlを使ったウェブページ(https://miyarecruit.herokuapp.com)を作ったことがあり、その時はpython側で自分のherokuのpostgresqlのホストとパスワードなどを指定して接続しました。 https://teratail.com/questions/179488 これによってどこのパソコンでもHerokuのデータベースに接続すれば中身を見ることができました。 前回のプログラムの一部 ``` def predict(): sum_sentence,sum_num = summarize.dosum(num,sentence) #DBに追加して、書き込み #データベース接続のため connection = psycopg2.connect("host=ec25-205.compute-1.amazonaws.com port=5432 dbname=demj user=be password=fbdf3b5c0973776") cursor = connection.cursor() cursor.execute("select version()") ``` このようにHerokuの自分のデータベースに接続する際にホストとパスワードなどを書いておかないとDBに書き込めないという認識です 今回のプログラムではまったくそのような処理(自分のHerokuのDBにつなぐ)をしている気がしません。 どこのherokuのデータベースに保存されいるのでしょうか? またそれを見たい場合はどうすれば見れるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問