我有一个Flask服务器正在运行,如果不转储所有环境变量,就无法使其作为服务运行。
这是我的配置,如果没有DATABASE_URL环境变量,则应该使用sqlite。除非我将其作为服务运行,否则它每次都无法工作。
#SQL Alchemy Database config
if os.environ.get('DATABASE_URL') is None:
print('Using SQLITE')
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_DATABASE_URI = ('sqlite:///' + os.path.join(basedir, 'app.db') + '?check_same_thread=False')
else:
print('Using MySQL')
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
SQLALCHEMY_TRACK_MODIFICATIONS = False
#SQLALCHEMY_DATABASE_URI = ('mysql+pymysql://username:password@localhost/20200830MYSQL')
#export DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
将其放置在/ etc / environment时可以手动运行,但不适用于服务。这是/ etc / environment
DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
在终端中执行以下命令也不适用于我的服务。
export DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
我还将它放在/ etc / systemd / system中的server.service文件中,它仍然无法正常工作。这是server.service文件:
[Unit]
Description=Server
After=multi-user.target
[Service]
DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
WorkingDirectory=/home/jon/server
ExecStart=/home/jon/server/env/bin/gunicorn -k gevent -b 0.0.0.0:5080 app:app
Restart=always
[Install]
RequiredBy = multi-user.target
如此处所详述,将变量放入server.service时,我需要更正某些语法。这是我使用的语法。
[Service]
Environment="SECRET=pGNqduRFkB4K9C2vijOmUDa2kPtUhArN"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句