本文整理汇总了Python中skarphedcore.database.Database.update_tables_for_module方法的典型用法代码示例。如果您正苦于以下问题:Python Database.update_tables_for_module方法的具体用法?Python Database.update_tables_for_module怎么用?Python Database.update_tables_for_module使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类skarphedcore.database.Database
的用法示例。
在下文中一共展示了Database.update_tables_for_module方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: update_module
# 需要导入模块: from skarphedcore.database import Database [as 别名]
# 或者: from skarphedcore.database.Database import update_tables_for_module [as 别名]
def update_module(cls,module):
"""
updates the given module
"""
# - neueste versionsnummer holen
# - pruefen ob bereits auf fs vorhanden
# - wenn nein, holen
# - neues modul laden
# - tabellen aendern
# - permissions aendern
# - datenbank-versionseintraege updaten
if module.__class__.__name__ != "Module":
nr = cls._get_module_id_from_name(module_meta["name"])
module = cls.get_module(nr)
modpath = Configuration().get_entry('global.modpath')
repo = cls.get_repository()
latest_version = repo.get_latest_version(module)
latest_path = modpath+"/"+latest_version["name"]+"/v"+\
str(latest_version["version_major"])+"_"+ \
str(latest_version["version_minor"])+"_"+ \
str(latest_version["revision"])
if cls.compare_versions(latest_version, module) == 1:
if not os.path.exists(latest_path):
datapath = repo.download_module(latest_version)
os.mkdir(latest_path)
tar = tarfile.open(datapath, "r:gz")
tar.extractall(latest_path)
nr = cls._get_module_id_from_name(latest_version["name"])
db = Database()
stmnt = "UPDATE MODULES SET MOD_VERSIONMAJOR = ?, \
MOD_VERSIONMINOR = ?, \
MOD_VERSIONREV = ? \
WHERE MOD_ID = ? ;"
db.query(stmnt,(latest_version["version_major"],
latest_version["version_minor"],
latest_version["revision"],
nr),commit=True)
updated_module = cls.get_module(nr)
db.update_tables_for_module(updated_module)
Permission.update_permissions_for_module(updated_module)
PokeManager.add_activity(ActivityType.MODULE)