Задать вопрос
@FCKJesus

Почему при скачивании с heroku базы данных, бд скачивается в изначальном виде?

Есть приложение, в авторизацией по ключам, ключи хранятся в бд на сервере, скрипт полностью рабочий, ибо проверял все и не раз на локальном сервере, изменения вносятся, приложение не стопал.

Вот функции из фласк приложения для работы с бд
@app.route("/load", methods=["POST"])
def load_data():
    
    if request.method == 'POST':
        data = request.json
        db = sqlite3.connect('ozon.db')
        cur = db.cursor()
        try:
            key = cur.execute('''SELECT key FROM keys WHERE key="{0}"'''.format(data['key']))
            key = cur.fetchone()
            try:
                if key[0]:
                    cur.execute('''UPDATE keys SET value = "{0}" WHERE key= "{1}"'''.format('1',data['key']))
                    db.commit()
                    key_id = cur.execute('''SELECT id FROM keys WHERE key="{0}"'''.format(data['key']))
                    key_id = cur.fetchone()
                    uuid = cur.execute('''SELECT uuid FROM system WHERE key_id="{0}"'''.format(key_id[0]))
                    uuid = cur.fetchone()
                    if not uuid:
                        cur.execute("""INSERT INTO system VALUES ('{0}','{1}')""".format(data['uuid'],key_id[0]))
                        db.commit()
                        return 'True'
                    else:
                        if uuid[0] == data['uuid']:
                            return 'True'
                        else:
                            return 'False'
            except TypeError:
                return 'False'

        except sqlite3.Error as e:
            if db:
                db.rollback()
                print(e)
        finally:
            if db:
                db.close()
    return 'test'

@app.route("/check", methods=["POST"])
def check_data():
    if request.method == 'POST':
        data = request.json
        db = sqlite3.connect('ozon.db')
        cur = db.cursor()
        try:
            value = cur.execute('''SELECT value FROM keys WHERE key="{0}"'''.format(data['key']))
            value = cur.fetchone()
            try:
                if value[0]:
                    if value[0] == 1:
                        return 'True'
                    else:
                        return 'False'
                else:
                    return 'False'
            except TypeError:
                return 'False'
        except sqlite3.Error as e:
            if db:
                db.rollback()
                print(e)
        finally:
            if db:
                db.close()
               
    return 'test'

Качал через file.io
curl -F "file=@db.db" https://file.io
Не могу понять почему так.
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Heroku
Седой и строгий
Лентяи, не удосужившиеся прочитать документацию или воспользоваться поиском, задают тут этот вопрос еженедельно. А я 6 лет подряд отвечаю, что у Heroku эфемерная файловая система, поэтому SQLite там не работает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы