summaryrefslogtreecommitdiff
path: root/internal/storage/sql_provider_backend_sqlite.go
diff options
context:
space:
mode:
authorJames Elliott <james-d-elliott@users.noreply.github.com>2021-11-23 20:45:38 +1100
committerGitHub <noreply@github.com>2021-11-23 20:45:38 +1100
commit3695aa8140eb91fd54a4cd849e1340ad4c36d987 (patch)
treee2cbb84db06b8058dc89ba9c616f016a223e6e67 /internal/storage/sql_provider_backend_sqlite.go
parent884dc99083ba280d1a93103c4e16d4446ff7fdcc (diff)
feat(storage): primary key for all tables and general qol refactoring (#2431)
This is a massive overhaul to the SQL Storage for Authelia. It facilitates a whole heap of utility commands to help manage the database, primary keys, ensures all database requests use a context for cancellations, and paves the way for a few other PR's which improve the database. Fixes #1337
Diffstat (limited to 'internal/storage/sql_provider_backend_sqlite.go')
-rw-r--r--internal/storage/sql_provider_backend_sqlite.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/storage/sql_provider_backend_sqlite.go b/internal/storage/sql_provider_backend_sqlite.go
new file mode 100644
index 000000000..b11b82239
--- /dev/null
+++ b/internal/storage/sql_provider_backend_sqlite.go
@@ -0,0 +1,22 @@
+package storage
+
+import (
+ _ "github.com/mattn/go-sqlite3" // Load the SQLite Driver used in the connection string.
+)
+
+// SQLiteProvider is a SQLite3 provider.
+type SQLiteProvider struct {
+ SQLProvider
+}
+
+// NewSQLiteProvider constructs a SQLite provider.
+func NewSQLiteProvider(path string) (provider *SQLiteProvider) {
+ provider = &SQLiteProvider{
+ SQLProvider: NewSQLProvider(providerSQLite, "sqlite3", path),
+ }
+
+ // All providers have differing SELECT existing table statements.
+ provider.sqlSelectExistingTables = querySQLiteSelectExistingTables
+
+ return provider
+}