feat: split out messages table from main database
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
)
|
||||
|
||||
var data_db *pgx.Conn
|
||||
var messages_db *pgx.Conn
|
||||
var stats_db *pgx.Conn
|
||||
var rdb *redis.Client
|
||||
|
||||
@@ -20,6 +21,7 @@ func run_simple_pg_query(c *pgx.Conn, sql string) {
|
||||
|
||||
func connect_dbs() {
|
||||
data_db = pg_connect(get_env_var("DATA_DB_URI"))
|
||||
messages_db = pg_connect(get_env_var("MESSAGES_DB_URI"))
|
||||
stats_db = pg_connect(get_env_var("STATS_DB_URI"))
|
||||
rdb = redis_connect(get_env_var("REDIS_ADDR"))
|
||||
}
|
||||
|
@@ -37,6 +37,15 @@ func run_redis_query() []rstatval {
|
||||
return values
|
||||
}
|
||||
|
||||
func get_message_count() int {
|
||||
var count int
|
||||
row := messages_db.QueryRow(context.Background(), "select count(*) as count from systems")
|
||||
if err := row.Scan(&count); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return count
|
||||
}
|
||||
|
||||
func run_data_stats_query() map[string]interface{} {
|
||||
s := map[string]interface{}{}
|
||||
|
||||
|
@@ -36,14 +36,12 @@ func update_db_meta() {
|
||||
}
|
||||
|
||||
func update_db_message_meta() {
|
||||
// since we're doing this concurrently, it needs a separate db connection
|
||||
tmp_db := pg_connect(get_env_var("DATA_DB_URI"))
|
||||
defer tmp_db.Close(context.Background())
|
||||
count := get_message_count()
|
||||
|
||||
key := "message"
|
||||
q := fmt.Sprintf("update info set %s_count = (select count(*) from %s)", key, plural(key))
|
||||
log.Println("data db query:", q)
|
||||
run_simple_pg_query(tmp_db, q)
|
||||
_, err := data_db.Exec(context.Background(), "update info set message_count = $1", count)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func update_stats() {
|
||||
|
Reference in New Issue
Block a user