Skip to content

Commit 6690b77

Browse files
committed
sqlite3 and psql support
1 parent a9e7222 commit 6690b77

File tree

4 files changed

+181
-15
lines changed

4 files changed

+181
-15
lines changed

backend/config/sqlite-test-db.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"database": {
3+
"engine": "knex-native",
4+
"knex": {
5+
"client": "sqlite3",
6+
"connection": {
7+
"filename": "/app/backend/config/mydb.sqlite"
8+
},
9+
"pool": {
10+
"min": 0,
11+
"max": 1,
12+
"createTimeoutMillis": 3000,
13+
"acquireTimeoutMillis": 30000,
14+
"idleTimeoutMillis": 30000,
15+
"reapIntervalMillis": 1000,
16+
"createRetryIntervalMillis": 100,
17+
"propagateCreateError": false
18+
},
19+
"migrations": {
20+
"tableName": "migrations",
21+
"stub": "src/backend/lib/migrate_template.js",
22+
"directory": "src/backend/migrations"
23+
}
24+
}
25+
}
26+
}

backend/db.js

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,27 @@ if (!config.has('database')) {
44
throw new Error('Database config does not exist! Please read the instructions: https://github.com/jc21/nginx-proxy-manager/blob/master/doc/INSTALL.md');
55
}
66

7-
let data = {
8-
client: config.database.engine,
9-
connection: {
10-
host: config.database.host,
11-
user: config.database.user,
12-
password: config.database.password,
13-
database: config.database.name,
14-
port: config.database.port
15-
},
16-
migrations: {
17-
tableName: 'migrations'
18-
}
19-
};
7+
function generateDbConfig() {
8+
if (config.database.engine === 'knex-native') {
9+
return config.database.knex;
10+
} else
11+
return {
12+
client: config.database.engine,
13+
connection: {
14+
host: config.database.host,
15+
user: config.database.user,
16+
password: config.database.password,
17+
database: config.database.name,
18+
port: config.database.port
19+
},
20+
migrations: {
21+
tableName: 'migrations'
22+
}
23+
};
24+
}
25+
26+
27+
let data = generateDbConfig();
2028

2129
if (typeof config.database.version !== 'undefined') {
2230
data.version = config.database.version;

backend/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@
2626
"nodemon": "^2.0.2",
2727
"objection": "^2.1.3",
2828
"path": "^0.12.7",
29+
"pg": "^7.12.1",
2930
"restler": "^3.4.0",
3031
"signale": "^1.4.0",
32+
"sqlite3": "^4.1.1",
3133
"temp-write": "^4.0.0",
3234
"unix-timestamp": "^0.2.0"
3335
},

backend/yarn.lock

Lines changed: 132 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,11 @@ [email protected]:
325325
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
326326
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
327327

328+
329+
version "2.0.0"
330+
resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
331+
integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
332+
328333
busboy@^0.3.1:
329334
version "0.3.1"
330335
resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b"
@@ -2198,6 +2203,11 @@ mysql@^2.18.1:
21982203
safe-buffer "5.1.2"
21992204
sqlstring "2.3.1"
22002205

2206+
nan@^2.12.1:
2207+
version "2.14.1"
2208+
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
2209+
integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
2210+
22012211
nanomatch@^1.2.9:
22022212
version "1.2.13"
22032213
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -2260,6 +2270,22 @@ [email protected]:
22602270
semver "^5.3.0"
22612271
tar "^4.4.2"
22622272

2273+
node-pre-gyp@^0.11.0:
2274+
version "0.11.0"
2275+
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054"
2276+
integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==
2277+
dependencies:
2278+
detect-libc "^1.0.2"
2279+
mkdirp "^0.5.1"
2280+
needle "^2.2.1"
2281+
nopt "^4.0.1"
2282+
npm-packlist "^1.1.6"
2283+
npmlog "^4.0.2"
2284+
rc "^1.2.7"
2285+
rimraf "^2.6.1"
2286+
semver "^5.3.0"
2287+
tar "^4"
2288+
22632289
node-rsa@^1.0.8:
22642290
version "1.0.8"
22652291
resolved "https://registry.yarnpkg.com/node-rsa/-/node-rsa-1.0.8.tgz#29a4517380f3272cd2073ff4d4c1ca44127ea4ad"
@@ -2514,6 +2540,11 @@ package-json@^4.0.0:
25142540
registry-url "^3.0.3"
25152541
semver "^5.1.0"
25162542

2543+
2544+
version "1.0.0"
2545+
resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
2546+
integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
2547+
25172548
parent-module@^1.0.0:
25182549
version "1.0.1"
25192550
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -2603,11 +2634,63 @@ path@^0.12.7:
26032634
process "^0.11.1"
26042635
util "^0.10.3"
26052636

2637+
2638+
version "0.1.3"
2639+
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
2640+
integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
2641+
26062642
26072643
version "2.1.0"
26082644
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.1.0.tgz#e07258f280476540b24818ebb5dca29e101ca502"
26092645
integrity sha512-bhlV7Eq09JrRIvo1eKngpwuqKtJnNhZdpdOlvrPrA4dxqXPjxSrbNrfnIDmTpwMyRszrcV4kU5ZA4mMsQUrjdg==
26102646

2647+
2648+
version "1.0.1"
2649+
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
2650+
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
2651+
2652+
pg-packet-stream@^1.1.0:
2653+
version "1.1.0"
2654+
resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914"
2655+
integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg==
2656+
2657+
pg-pool@^2.0.10:
2658+
version "2.0.10"
2659+
resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a"
2660+
integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==
2661+
2662+
pg-types@^2.1.0:
2663+
version "2.2.0"
2664+
resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
2665+
integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
2666+
dependencies:
2667+
pg-int8 "1.0.1"
2668+
postgres-array "~2.0.0"
2669+
postgres-bytea "~1.0.0"
2670+
postgres-date "~1.0.4"
2671+
postgres-interval "^1.1.0"
2672+
2673+
pg@^7.12.1:
2674+
version "7.18.2"
2675+
resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb"
2676+
integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA==
2677+
dependencies:
2678+
buffer-writer "2.0.0"
2679+
packet-reader "1.0.0"
2680+
pg-connection-string "0.1.3"
2681+
pg-packet-stream "^1.1.0"
2682+
pg-pool "^2.0.10"
2683+
pg-types "^2.1.0"
2684+
pgpass "1.x"
2685+
semver "4.3.2"
2686+
2687+
2688+
version "1.0.2"
2689+
resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
2690+
integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
2691+
dependencies:
2692+
split "^1.0.0"
2693+
26112694
picomatch@^2.0.4, picomatch@^2.0.7:
26122695
version "2.2.2"
26132696
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
@@ -2631,6 +2714,28 @@ posix-character-classes@^0.1.0:
26312714
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
26322715
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
26332716

2717+
postgres-array@~2.0.0:
2718+
version "2.0.0"
2719+
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
2720+
integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
2721+
2722+
postgres-bytea@~1.0.0:
2723+
version "1.0.0"
2724+
resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
2725+
integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
2726+
2727+
postgres-date@~1.0.4:
2728+
version "1.0.5"
2729+
resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee"
2730+
integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA==
2731+
2732+
postgres-interval@^1.1.0:
2733+
version "1.2.0"
2734+
resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
2735+
integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
2736+
dependencies:
2737+
xtend "^4.0.0"
2738+
26342739
prelude-ls@~1.1.2:
26352740
version "1.1.2"
26362741
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -2922,6 +3027,11 @@ semver-diff@^2.0.0:
29223027
dependencies:
29233028
semver "^5.0.3"
29243029

3030+
3031+
version "4.3.2"
3032+
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
3033+
integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
3034+
29253035
semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
29263036
version "5.7.1"
29273037
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -3074,11 +3184,26 @@ split-string@^3.0.1, split-string@^3.0.2:
30743184
dependencies:
30753185
extend-shallow "^3.0.0"
30763186

3187+
split@^1.0.0:
3188+
version "1.0.1"
3189+
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
3190+
integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
3191+
dependencies:
3192+
through "2"
3193+
30773194
sprintf-js@~1.0.2:
30783195
version "1.0.3"
30793196
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
30803197
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
30813198

3199+
sqlite3@^4.1.1:
3200+
version "4.2.0"
3201+
resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.2.0.tgz#49026d665e9fc4f922e56fb9711ba5b4c85c4901"
3202+
integrity sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==
3203+
dependencies:
3204+
nan "^2.12.1"
3205+
node-pre-gyp "^0.11.0"
3206+
30823207
30833208
version "2.3.1"
30843209
resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40"
@@ -3221,7 +3346,7 @@ table@^5.2.3:
32213346
slice-ansi "^2.1.0"
32223347
string-width "^3.0.0"
32233348

3224-
tar@^4.4.2:
3349+
tar@^4, tar@^4.4.2:
32253350
version "4.4.13"
32263351
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
32273352
integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
@@ -3267,7 +3392,7 @@ text-table@^0.2.0:
32673392
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
32683393
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
32693394

3270-
through@^2.3.6:
3395+
through@2, through@^2.3.6:
32713396
version "2.3.8"
32723397
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
32733398
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@@ -3577,6 +3702,11 @@ xmlbuilder@>=0.4.2:
35773702
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.0.tgz#4c4c9109180937baeb839978b590250be09a4aef"
35783703
integrity sha512-xae5hmPQnmSFhpiuV3NGXq+FWGOvWy/rIzxVLnRtSSABbPZWltTQCe6WlHDpCq5pGvnGwNsWnS1FdkW7Tx9FNQ==
35793704

3705+
xtend@^4.0.0:
3706+
version "4.0.2"
3707+
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
3708+
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
3709+
35803710
y18n@^3.2.1:
35813711
version "3.2.1"
35823712
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"

0 commit comments

Comments
 (0)