From 7097d01f9ef37ffb2c54b7f1b44ff3d2d117a241 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Fri, 13 Dec 2019 20:34:19 -0300 Subject: [PATCH] move schema to sqlfile, create on init. --- .gitignore | 3 +++ LNbits/__init__.py | 11 ++++++++++- LNbits/data/database.sqlite3 | Bin 81920 -> 0 bytes LNbits/data/schema.sql | 22 ++++++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) delete mode 100644 LNbits/data/database.sqlite3 create mode 100644 LNbits/data/schema.sql diff --git a/.gitignore b/.gitignore index ce24d8ff..41b9514e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,9 +13,12 @@ __pycache__ .pytest_cache htmlcov Pipfile.lock + *.swo *.swp *.pyo *.pyc *.env venv + +database.sqlite3 diff --git a/LNbits/__init__.py b/LNbits/__init__.py index fb4279de..e10acba2 100644 --- a/LNbits/__init__.py +++ b/LNbits/__init__.py @@ -1,3 +1,4 @@ +import os import lnurl import requests import time @@ -6,7 +7,7 @@ from flask import Flask, jsonify, render_template, request from .db import Database from .helpers import encrypt -from .settings import INVOICE_KEY, ADMIN_KEY, API_ENDPOINT, DATABASE_PATH +from .settings import INVOICE_KEY, ADMIN_KEY, API_ENDPOINT, DATABASE_PATH, LNBITS_PATH app = Flask(__name__) @@ -19,6 +20,14 @@ def db_connect(db_path=DATABASE_PATH): return con +@app.before_first_request +def init(): + with Database() as db: + with open(os.path.join(LNBITS_PATH, "data/schema.sql")) as schemafile: + for stmt in schemafile.read().split("\n\n"): + db.execute(stmt, []) + + @app.route("/") def home(): return render_template("index.html") diff --git a/LNbits/data/database.sqlite3 b/LNbits/data/database.sqlite3 deleted file mode 100644 index f5a37d79c889e37779654d75a1c1f2b1b68ea60d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81920 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 bjE2By2#kinXb6mkz-S1JhQMeDP#6LLbaFMh diff --git a/LNbits/data/schema.sql b/LNbits/data/schema.sql new file mode 100644 index 00000000..fde26488 --- /dev/null +++ b/LNbits/data/schema.sql @@ -0,0 +1,22 @@ +CREATE TABLE IF NOT EXISTS accounts ( + userhash text PRIMARY KEY, + email text, + pass text +); + +CREATE TABLE IF NOT EXISTS wallets ( + hash text PRIMARY KEY, + name text NOT NULL, + user text NOT NULL, + adminkey text NOT NULL, + inkey text +); + +CREATE TABLE IF NOT EXISTS apipayments ( + payhash text PRIMARY KEY, + amount integer NOT NULL, + fee integer NOT NULL, + wallet text NOT NULL, + pending boolean NOT NULL, + memo text +);