Added additional SQLite option
This commit is contained in:
26
modules/migrator_sqlite.py
Normal file
26
modules/migrator_sqlite.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from os import rename
|
||||
from pathlib import Path
|
||||
from typing import Mapping
|
||||
|
||||
from libbot.sync import json_read
|
||||
|
||||
from modules.database_sqlite import cursor
|
||||
|
||||
|
||||
def migrate_database() -> None:
|
||||
"""Apply migrations from old JSON database to SQLite"""
|
||||
if not Path("data/database.json").exists():
|
||||
return
|
||||
|
||||
db_old: Mapping[str, Mapping[str, str]] = json_read(Path("data/database.json"))
|
||||
|
||||
for user, keys in db_old.items():
|
||||
user_locale = None if "locale" not in keys else keys["locale"]
|
||||
user_card = None if "card" not in keys else keys["card"]
|
||||
|
||||
cursor.execute(
|
||||
"INSERT INTO users VALUES (?, ?)", (int(user), user_card, user_locale)
|
||||
)
|
||||
|
||||
cursor.connection.commit()
|
||||
rename(Path("data/database.json"), Path("data/database.migrated.json"))
|
Reference in New Issue
Block a user