您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

51 行
1.4KB

  1. import sqlite3
  2. import os
  3. from modules import cbpi
  4. from .db import get_db
  5. def execute_file(curernt_version, data):
  6. # TODO add if block
  7. '''
  8. if curernt_version >= data["version"]:
  9. cbpi.app.logger.info("SKIP DB FILE: %s" % data["file"])
  10. return
  11. '''
  12. try:
  13. with sqlite3.connect("craftbeerpi.db") as conn:
  14. with open('./update/%s' % data["file"], 'r') as f:
  15. d = f.read()
  16. sqlCommands = d.split(";")
  17. cur = conn.cursor()
  18. for s in sqlCommands:
  19. cur.execute(s)
  20. cur.execute("INSERT INTO schema_info (version,filename) values (?,?)", (data["version"], data["file"]))
  21. conn.commit()
  22. except sqlite3.OperationalError as err:
  23. print("EXCEPT")
  24. print(err)
  25. @cbpi.initalizer(order=-9999)
  26. def init(app=None):
  27. with cbpi.app.app_context():
  28. conn = get_db()
  29. cur = conn.cursor()
  30. current_version = None
  31. try:
  32. cur.execute("SELECT max(version) as m FROM schema_info")
  33. m = cur.fetchone()
  34. current_version = m["m"]
  35. except:
  36. pass
  37. result = []
  38. for filename in os.listdir("./update"):
  39. if filename.endswith(".sql"):
  40. d = {"version": int(filename[:filename.index('_')]), "file": filename}
  41. result.append(d)
  42. execute_file(current_version, d)