diff --git a/tools/conv.py b/tools/conv.py index 2ba723f25..f01295fc7 100644 --- a/tools/conv.py +++ b/tools/conv.py @@ -1,3 +1,8 @@ +# Python script to migrate an LNbits SQLite DB to Postgres +# All credits to @Fritz446 for the awesome work + +# pip install psycopg2 OR psycopg2-binary + import argparse import os import sqlite3 @@ -8,13 +13,6 @@ import psycopg2 from lnbits.settings import settings -# Python script to migrate an LNbits SQLite DB to Postgres -# All credits to @Fritz446 for the awesome work - -# pip install psycopg2 OR psycopg2-binary - -# Change these values as needed - sqfolder = settings.lnbits_data_folder db_url = settings.lnbits_database_url @@ -31,7 +29,7 @@ else: pgschema = "" -def get_sqlite_cursor(sqdb) -> sqlite3: +def get_sqlite_cursor(sqdb): consq = sqlite3.connect(sqdb) return consq.cursor() @@ -112,12 +110,15 @@ def migrate_core(file: str, exclude_tables: List[str] = []): def migrate_ext(file: str): filename = os.path.basename(file) schema = filename.replace("ext_", "").split(".")[0] - print(f"Migrating ext: {file}.{schema}") + print(f"Migrating ext: {schema} from file {file}") migrate_db(file, schema) print(f"✅ Migrated ext: {schema}") def migrate_db(file: str, schema: str, exclude_tables: List[str] = []): + # first we check if this file exists: + assert os.path.isfile(file), f"{file} does not exist!" + sq = get_sqlite_cursor(file) tables = sq.execute( """ @@ -139,6 +140,10 @@ def migrate_db(file: str, schema: str, exclude_tables: List[str] = []): q = build_insert_query(schema, tableName, columns) data = sq.execute(f"SELECT * FROM {tableName};").fetchall() + + if len(data) == 0: + print(f"🛑 You sneaky dev! Table {tableName} is empty!") + insert_to_pg(q, data) sq.close()