Python heroku sqlite3 существующей таблицы не существует - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь переместить базу данных SQLite в Heroku с помощью Flask, чтобы получить доступ к ней с нескольких устройств.Я отправляю базу данных в Heroku, которую я создал локально, поэтому я знаю, что таблица существует.

Client.py

import requests, json
url = "https://someidijustmadeup.herokuapp.com/select"
j = {}
j["sql"] = "SELECT * FROM COMICS"
r = requests.get(url, json = j)
print("Status Code", r.status_code)
rJson = json.loads(r.content.decode("utf-8"))
print(len(rJson))

Сервер.py

import os

from flask import (Flask, jsonify, request)

from functions.functions import (executeSqlRequest)

host = "0.0.0.0"

app = Flask(__name__)

@app.route("/select", methods = ["GET"])
def select():
    rJson = request.get_json()

    # Ignore the values, SELECT doesn't need them
    returnDict = executeSqlRequest(rJson.get("sql", None), None)

    return jsonify(returnDict)

if (__name__ == "__main__"):
    port = int(os.environ.get("PORT", 5000))
    app.run(host = host, port = port)

executeSqlRequest просто запрашивает базу данных.С приложением Flask все в порядке, я могу подключиться к нему и выполнить запросы.

Информация

  1. Файл БД существует и подключается к нему,Я проверил это.
  2. Я удаленно запустил cat database.db на сервере Heroku, и в выходных данных я вижу строки из базы данных, поэтому я знаю, что данные есть.Он также показывает мне SQL для моей таблицы.

1 Ответ

0 голосов
/ 10 декабря 2018

У динамов Heroku есть эфемерная файловая система : любые сделанные вами изменения будут потеряны при каждом перезапуске динамо, что происходит часто (не реже одного раза в день).Поскольку SQLite является файловой базой данных, она несовместима с Heroku.

Хорошая новость заключается в том, что Heroku имеет хорошую поддержку клиент-серверных баз данных, таких как PostgreSQL.Фактически, он предоставляет базу данных PostgreSQL по умолчанию.Переменная окружения DATABASE_URL даст вам координаты для подключения к этой базе данных.

Если Postgres не ваша скорость, вы можете выбрать другое хранилище данных из списка дополнений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...