summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorrebecca <ubq323@ubq323.website>2026-09-17 20:56:34 +0100
committerrebecca <ubq323@ubq323.website>2026-09-17 20:56:34 +0100
commit50dd2e7e07cf25780bc825b9e9b30f66b3d233b0 (patch)
treec58c8a2b340fb82f32a691075adbbe9d0b32ad49 /web
parent44111041be9c2df027bc38676d21260a9005d093 (diff)
move r.web.db --> r.db
Diffstat (limited to 'web')
-rw-r--r--web/db.lua62
-rw-r--r--web/main.lua2
2 files changed, 1 insertions, 63 deletions
diff --git a/web/db.lua b/web/db.lua
deleted file mode 100644
index 5b616c2..0000000
--- a/web/db.lua
+++ /dev/null
@@ -1,62 +0,0 @@
-local dbi = require'DBI'
-local cqueues = require'cqueues'
-
-local function db_do(db, sql, ...)
- -- print('>>',sql,...)
- local stmt = assert(db:prepare(sql))
- ::tryagain::
- local ok, err = stmt:execute(...)
- if not ok and err:match"locked" then
- print'still waiting'
- cqueues.sleep(1)
- goto tryagain
- end
- assert(ok, err)
- return stmt
-end
-
-local extra_methods = {}
-function extra_methods.fetch_one(db, sql, ...)
- local stmt = db_do(db, sql, ...)
- local row = stmt:fetch(true)
- stmt:close()
- return row
-end
-function extra_methods.fetch(db, sql, ...)
- local stmt = db_do(db, sql, ...)
- local rows, i = {}, 1
- for row in stmt:rows(true) do
- rows[i] = row
- i = i + 1
- end
- stmt:close()
- return rows
-end
-function extra_methods.exec(db, sql, ...)
- local stmt = db_do(db, sql, ...)
- stmt:close()
-end
-
-local function get_conn()
- local c = assert(dbi.Connect('SQLite3','database.db'))
- -- fuck it
- local mt = getmetatable(c)
- for k,v in pairs(extra_methods) do mt.__index[k] = v end
- mt.__close = function(x) x:close() end
- c:exec('pragma foreign_keys=ON;')
- return c
-end
-
-local function apply_migrations(migrations)
- local conn <close> = get_conn()
- local ver = conn:fetch_one"pragma user_version".user_version
- for i = ver+1, #migrations do
- print("applying migration #"..i)
- conn:exec(migrations[i])
- end
- conn:exec("pragma user_version="..#migrations)
- assert(conn:commit())
-end
-
-
-return {conn=get_conn,apply_migrations=apply_migrations}
diff --git a/web/main.lua b/web/main.lua
index 5814615..283b595 100644
--- a/web/main.lua
+++ b/web/main.lua
@@ -4,7 +4,7 @@ local posix_dirent = require 'posix.dirent'
local server = require 'r.web.server'
local app = require 'app'
-local db = require 'r.web.db'
+local db = require 'r.db'
local pprint = require'pprint'