【问题标题】:Deploying flask with sqlite to heroku将带有 sqlite 的烧瓶部署到 heroku
【发布时间】:2021-10-17 20:36:41
【问题描述】:

当我将我的应用推送到 Heroku 时,它确实使用了 data_base.db,如果我尝试将用户添加到数据库中,我会收到找不到数据库的错误

2021-08-15T13:02:39.226938+00:00 app[web.1]: cursor.execute(statement, parameters)
2021-08-15T13:02:39.226938+00:00 app[web.1]: sqlite3.OperationalError: no such table: users

heroku 是禁止使用 sqlite 还是我做错了什么

这是config.py

import random 
import string 


class Config:

    SECRET_KEY = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(60))

    SQLALCHEMY_DATABASE_URI = 'sqlite:///data_base.db'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    



class DevelopmentConfig(Config):
    DEBUG = True 

class ProductionConfig(Config):
    DEBUG = False 

config = {
    'dev' : DevelopmentConfig,
    'prod': ProductionConfig,
    }
    

【问题讨论】:

  • 我不认为他们完全禁止它,但是即使您将迁移到位以引导数据库结构,每次测功机重新启动时,所有数据都会丢失(至少每天):help.heroku.com/K1PPS2WM/….

标签: sqlite flask heroku


【解决方案1】:

替换这个

SQLALCHEMY_DATABASE_URI = 'sqlite:///data_base.db'

uri = os.getenv("DATABASE_URL")
if uri.startswith("postgres://"):
    uri = uri.replace("postgres://", "postgresql://", 1)

SQLALCHEMY_DATABASE_URI = uri or 'sqlite:///data_base.db'

简单地告诉应用在部署到heroku时使用postgresql

别忘了将psycopg2 添加到requirements.txt 文件中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2015-09-22
    相关资源
    最近更新 更多