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 ce24d8ff9..41b9514e8 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 fb4279de1..e10acba2d 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 zcmeI*eTW-n9tZH5OeT|Tn%%amY@zfFTZNXsFv;d+BZ6)9*HbdXr>gL-Vpt zQtK*++dDiEl{@qf!MD5nLl6H@p(=7OrN?o{DWc-NaNMC3UqI_S;tQz9J$YucFE&qh ze%)kucKuG6CzI#-&NI*R*|^(e#$@-d9r>CW%#|xeqZS;HmP@iMT@wsSlKK}(k}hFu z7hAj8`T$$qY;7!ZV?%t;`q->r8DIf5@R-!|K=;489}m19cr0)*a8SG#S|9)c2tWV= z5P$##AOHafd@lvAuFpDp*wZ(>R+jRmta(fIc!9lSJ7S!umHFc%#%O-j7%Q5kTJ=b1 z+Jj}|+YV`cYuC!B_SB4Y!JO7KZPRycDmgTg42}$K*^vzPPiyH9uIuvkv#yUC)ua8s zk>tLSjjX~bmQR#wQ;$y?g@QTl@u-o{PPOJs$IP**hefkko_b_ti!Kl-eJ> zKDmG0xUz@WR{Zh|sJ6=LD1S##Oq?f%;NkrSBo7kC4(KQd*&;wSSV*kCW14r1bTq^cqUq^D!y?Cqi0%LKIeiDQam} zua=tCit5y@!j`bG3QYeMe1A>cC&v` z+h3G-?Pn!PIZH~{&)V5ulu_GJ7F4#A(m_hv^%W`oDk=S2Qu+>3dLJpRlhR&FT0Tcg zKTk^kjFdh~N?$`tucD--Pi&{p^W@vSe1n(&=H+X=e2JHT<>gskTEDHH;oDF0(t4Kt zhHpQ_OY3*MWp@{^`3Wy?=jAQDtnjkH%N#F%#LEM`9O30oUT){*7G7S(%NQ>uX|p6H zjpVJ{<2#1p=Dt*7gW|@Qk@>v2)p}C9n{)e+?>?6JYclKPoq}RXBo{RQhXOFLgqw}2WVCVDP zwWoePCl--_`*TqX>Ma4~@AE35Wass8OXOfK_WEy$FEZ)XZ`Ab>vs%lV1-q}jSu~`_ za_MX&p~s^M-Hc|#k#N?GN5b(zJ#B`vg9$wvj>iWE2eUd`28~$6h#AprW*{^W(+463 z>p~C3v$+8yI;ckz@mL}jHnT=36V91wGnPrjlc7Ol`zUKmJO|sq@wd3GfCvCEm>u^T>+7ZL> zoFdR^zD|ufaM)x25*YvA+#lHf>1gLA>-~5;d$4eao*SL(`J&#!^RmD8wik_Z{fqXT zpkM7_QG<2<5Eq~7&SlS)yQi*o&&%R2un z>T71b>%`2*Eg!k8^S>=KlZ~#`lbf?|$REv~nM}x(-+!{`_upi9(>7$v^}q6!)ApQg zQ|4#AXG=BO&owse+@H1+YGm$gY}mOcUH`e!?)w&Yj*JWhAOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=ofT+&{=fXCy<2BTgWe&~QXsIqWwS#Ymx(_A%3OV4@3D?fS#q54`krdp5V@SvPmtw)W75zm04>j`^2I zTW!!81Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| bfB*y_009U<00Izz00bZa0SG`~kqZ1DbaFMh diff --git a/LNbits/data/schema.sql b/LNbits/data/schema.sql new file mode 100644 index 000000000..fde264885 --- /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 +);