我有一个基本的webapp,它在Openshift上托管,用Python / Flask编写。最近我添加了一个注册功能,用于将用户数据存储到SQLite数据库。该数据库位于主app文件夹中。
当我测试页面时,它似乎运行正常;在注册页面上输入数据时,用户信息将流入数据库。问题是,每次我将更改推送到应用程序时,数据库文件都会重置。如果我尝试使用git pull或git fetch origin来提取数据库中的更改,则不会反映在文件中。
有没有办法远程提交数据库更改,以便我可以提取它们,进行任何必要的更改并推送到原点而不会丢失数据?
或者我已经读过Openshift有一个环境变量OPENSHIFT_DATA_DIR,在部署新的更改时不会被重写。在这里保存数据库会很棒。不幸的是,我还没有弄清楚使用我到目前为止阅读的参考资料如何正确地做到这一点。非常感谢任何帮助。
答案 0 :(得分:3)
这是正确的,您应该保存要在OPENSHIFT_DATA_DIR
中保留的任何文件,它是在程序在openshift上运行时定义的环境变量。您应该将它用作sqllite数据库的基础目录。
import os
basedir = os.environ.get('OPENSHIFT_DATA_DIR')
import sqlite3
conn = sqlite3.connect(os.path.join(basedir,'example.db'))
或者在openshift上你可以为你的装备添加一个mysql数据库。