more database refinements along with new command line options

This commit is contained in:
2026-03-05 16:25:33 -07:00
parent 55c5c88c95
commit 3c7c91fa1b
5 changed files with 32 additions and 7 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ var amdb *sqlx.DB
// SetupDb sets up the database and associated items.
func SetupDb() (func(), error) {
exitfns := make([]func(), 0, 2)
db, err := sqlx.Open(config.GlobalConfig.Database.Driver, config.GlobalConfig.Database.Dsn)
db, err := sqlx.Connect(config.GlobalComputedConfig.DatabaseDriver, config.GlobalComputedConfig.DatabaseDSN)
if err == nil {
amdb = db
setupAdCache()
+6 -5
View File
@@ -21,6 +21,7 @@ import (
"time"
"git.erbosoft.com/amy/amsterdam/config"
"github.com/jmoiron/sqlx"
log "github.com/sirupsen/logrus"
)
@@ -653,15 +654,15 @@ func AmGetPublishedPosts(ctx context.Context) ([]*PostHeader, error) {
}
// Use the post IDs to build a SQL statement.
pidStrs := make([]string, len(pids))
for i, pid := range pids {
pidStrs[i] = fmt.Sprintf("%d", pid)
query, args, err := sqlx.In("SELECT * FROM posts WHERE postid IN (?)", pids)
if err != nil {
return nil, err
}
sql := fmt.Sprintf("SELECT * FROM posts WHERE postid IN (%s)", strings.Join(pidStrs, ", "))
query = amdb.Rebind(query)
// Use the SQL to read in all the post headers using a single database query.
var data []PostHeader
if err = amdb.SelectContext(ctx, &data, sql); err != nil {
if err = amdb.SelectContext(ctx, &data, query, args...); err != nil {
return nil, err
}
if len(data) < len(pids) {