fix: i actually sorta finished it and added a migration script
This commit is contained in:
parent
ba721a4b30
commit
b750aa140f
2 changed files with 23 additions and 1 deletions
21
scripts/migrate-old-documents-to-namespaced-documents.py
Normal file
21
scripts/migrate-old-documents-to-namespaced-documents.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import sqlite3
|
||||||
|
|
||||||
|
def migrate_old_documents_to_namespaced_documents(db:str):
|
||||||
|
db = sqlite3.connect(db)
|
||||||
|
|
||||||
|
values = db.cursor().execute("SELECT * FROM documents", ()).fetchall();
|
||||||
|
|
||||||
|
for k,v in values:
|
||||||
|
if "_" in k:
|
||||||
|
addon, key = k.split("_", 1)
|
||||||
|
db.cursor().execute("CREATE TABLE IF NOT EXISTS documents_{addon} (name TEXT PRIMARY KEY, value TEXT)", ())
|
||||||
|
db.cursor().execute("INSERT INTO documents_{addon} VALUES (?, ?)", (key, v))
|
||||||
|
db.cursor().execute("DELETE FROM documents WHERE name = ?", k)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print("[!] No argument given")
|
||||||
|
exit(-1)
|
||||||
|
migrate_old_documents_to_namespaced_documents(sys.argv[1])
|
||||||
|
|
|
@ -21,13 +21,14 @@ class AuthenticatorState:
|
||||||
legacy : bool = False
|
legacy : bool = False
|
||||||
|
|
||||||
class AddonStorage:
|
class AddonStorage:
|
||||||
|
# TODO this uses py formatting in SQL queries, can we avoid it?
|
||||||
db: sqlite3.Connection
|
db: sqlite3.Connection
|
||||||
name: str
|
name: str
|
||||||
|
|
||||||
def __init__(self, db:sqlite3.Connection, name:str):
|
def __init__(self, db:sqlite3.Connection, name:str):
|
||||||
self.db = db
|
self.db = db
|
||||||
self.name = name
|
self.name = name
|
||||||
self.db.cursor().execute('CREATE TABLE IF NOT EXISTS documents (name TEXT PRIMARY KEY, value TEXT)')
|
self.db.cursor().execute(f'CREATE TABLE IF NOT EXISTS documents_{self.name} (name TEXT PRIMARY KEY, value TEXT)')
|
||||||
self.db.commit()
|
self.db.commit()
|
||||||
|
|
||||||
# fstrings in queries are evil but if you go to this length to fuck up you kinda deserve it :)
|
# fstrings in queries are evil but if you go to this length to fuck up you kinda deserve it :)
|
||||||
|
|
Loading…
Reference in a new issue