【问题标题】:test inside flask app whether 'flask db init' was ever run在烧瓶应用程序中测试“烧瓶数据库初始化”是否曾经运行过
【发布时间】:2019-07-30 13:28:05
【问题描述】:

我在应用上下文中的导入下的脚本顶部创建了一个变量。脚本中的一些函数使用该变量,它也被导入到其他脚本中。该变量实际上是从导入的实例调用类方法,它也可能调用“会话”

with app.app_context():
    myvariable = myinstance.session.method3

没有任何问题,但有人决定在他们的 PC 上重新开始并运行

flask db init

它不喜欢那样。 flask db init 通常只运行一次,如果发生崩溃,几年内不会再次运行。我不想编写一个只检查 .db 文件是否存在的 hack,但是烧瓶或 sqlalchemy 中是否有一种方法可以为您提供关于 init 是否曾经运行过的 True 或 False?

【问题讨论】:

    标签: python python-3.x flask sqlalchemy


    【解决方案1】:

    好吧,我谈到不检查问题中的文件,但已经意识到在该命令运行之前 目录“迁移”不存在,所以除非有人有更好的主意一起去

    import os
    
    if os.path.isdir('migrations'):
        print("init was run")
    else:
        print("init has never been run")
    

    “迁移”这个名字不是我自己选择的,所以是一个有点干净的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 2018-12-13
      • 2018-10-25
      • 2012-08-20
      • 2014-04-07
      • 2019-01-04
      相关资源
      最近更新 更多