szx*_*zxk 2 sqlite sqlalchemy flask-sqlalchemy digital-ocean dokku
我在别处读到 Dokku 不支持 SQLite。为什么不?我正在使用带有 SQLAlchemy 的 Flask 应用程序,这似乎是所有抽象发生的地方。我不能将 sqlite 数据库文件放在磁盘上的某个位置(/home/dokku/database/my_db,也许?)并将其提供给 SQLAlchemy?
engine = create_engine('sqlite://///home/dokku/database/my_db')
Run Code Online (Sandbox Code Playgroud)
更具体地说,我会使用 Dokku 将该字符串存储为环境变量,而不是直接将其传入。
为什么这行不通?
为什么这行不通?
Dokku 通过 Docker 创建容器,您的应用程序在该容器及其文件系统内运行。此外,您的烧瓶应用程序无法/home/dokku 按设计访问.
取决于您的特定需求,并且只要您有一个 docker 容器:
使用容器内的路径(例如/app/db.sqlite)。只要应用程序的容器存在,这就会起作用。但是请注意,出于所有目的,您应该将 Dokku 应用程序的文件系统视为临时文件系统。
映射驻留在 dokku 主机上的主机文件,例如使用dokku-persistent-storage插件。
使用docker 数据卷。在写这篇文章的时候,似乎没有dokku插件,但制作起来相对简单(需要一个create创建数据容器的link命令,一个将其链接到应用程序的命令,最后一个dokku-args生成参数的钩子到docker run)