PostgreSQL backends for the moondark framework
///|
async test {
@async.with_task_group(group => {
let (db, executor) = @postgresql_database.open_db(
"postgres://user:pass@localhost:5432/app?sslmode=disable",
)
group.spawn_bg(no_wait=true, () => executor.run())
db.ready()
defer db.close()
let row = db.query_one("SELECT $1::int4 + 1 AS n", params=[41])
assert_eq((row.get_name("n") : Int32), 42)
})
}| Package | Core Interface | Public API |
|---|---|---|
| KKKIIO/moondark_postgresql/database | database/driver | open_db, Driver |
| KKKIIO/moondark_postgresql/sessions | sessions.SessionStore | PostgresSessionStore |
| KKKIIO/moondark_postgresql/tasks | tasks.DBTaskBackend, tasks.TaskStore | PostgresTaskBackend |
| KKKIIO/moondark_postgresql/files | files.Catalog, files.FileStore | PostgresCatalog, new_file_store |
| KKKIIO/moondark_postgresql/auth | auth.CredentialStore | PostgresCredentialStore |
CREATE TABLE IF NOT EXISTS sessions (
session_key VARCHAR(64) PRIMARY KEY,
session_data TEXT NOT NULL,
expires_at BIGINT NOT NULL
);let store = @postgresql_sessions.PostgresSessionStore(db)
app.add_middleware(@sessions.middleware(store))let store = @postgresql_files.new_file_store(
db,
root="./uploads",
key="app-secret",
)
store.put(key="documents/paper.pdf", pdf, content_type="application/pdf")