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
|
||||
|
||||
class AddonStorage:
|
||||
# TODO this uses py formatting in SQL queries, can we avoid it?
|
||||
db: sqlite3.Connection
|
||||
name: str
|
||||
|
||||
def __init__(self, db:sqlite3.Connection, name:str):
|
||||
self.db = db
|
||||
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()
|
||||
|
||||
# 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