20260508222203

This commit is contained in:
oneao committed 2026-05-08 22:22:04 +08:00
1 parent 443049dc4d
commit 624ddf4ada
2 files changed
+129

No files matched your search

@@ -0,0 +1,106 @@
package main
import (
"context"
"fmt"
"os"
"time"
"github.com/jackc/pgx/v5"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
appConn, err := pgx.Connect(ctx, "postgres://postgres:zhang520..@117.72.182.135:5432/app?sslmode=disable")
must(err)
defer appConn.Close(ctx)
allappConn, err := pgx.Connect(ctx, "postgres://postgres:zhang520..@117.72.182.135:5432/allapp?sslmode=disable")
must(err)
defer allappConn.Close(ctx)
fmt.Println("app.finance_record joined with categories:")
rows, err := appConn.Query(ctx, `
select r.id, r.space_id, r.category_id, c.name, c.icon, c.type, r.amount, r.remark,
r.record_time, r.create_by, r.create_time, r.update_by, r.update_time
from finance_record r
join finance_category_space c on c.id = r.category_id
order by r.id
`)
must(err)
defer rows.Close()
for rows.Next() {
var id, spaceID, categoryID, createBy, updateBy int64
var name, icon string
var typ int16
var amount string
var remark *string
var recordTime *time.Time
var createTime, updateTime *time.Time
must(rows.Scan(&id, &spaceID, &categoryID, &name, &icon, &typ, &amount, &remark, &recordTime, &createBy, &createTime, &updateBy, &updateTime))
fmt.Printf("- id=%d space=%d cat=%d %s/%s/type=%d amount=%s remark=%v record=%v create_by=%d update_by=%d\n", id, spaceID, categoryID, name, icon, typ, amount, remark, datePtr(recordTime), createBy, updateBy)
}
must(rows.Err())
fmt.Println("\napp spaces:")
printRows(ctx, appConn, `select id, name, invite_code, owner_id from space order by id`)
fmt.Println("\nallapp families:")
printRows(ctx, allappConn, `select id, name, invite_code, owner_id from b_family order by id`)
fmt.Println("\ncategory name/type/icon matches:")
rows, err = appConn.Query(ctx, `
select distinct c.name, c.icon, c.type
from finance_record r
join finance_category_space c on c.id = r.category_id
order by c.type, c.name, c.icon
`)
must(err)
defer rows.Close()
for rows.Next() {
var name, icon string
var typ int16
must(rows.Scan(&name, &icon, &typ))
var id int64
err := allappConn.QueryRow(ctx, `
select id from b_finance_category
where name = $1 and icon = $2 and type = $3
order by id
limit 1
`, name, icon, typ).Scan(&id)
if err != nil {
fmt.Printf("- %s/%s/type=%d -> NO MATCH (%v)\n", name, icon, typ, err)
continue
}
fmt.Printf("- %s/%s/type=%d -> allapp category id=%d\n", name, icon, typ, id)
}
must(rows.Err())
}
func printRows(ctx context.Context, conn *pgx.Conn, sql string) {
rows, err := conn.Query(ctx, sql)
must(err)
defer rows.Close()
for rows.Next() {
vals, err := rows.Values()
must(err)
fmt.Printf("- %v\n", vals)
}
must(rows.Err())
}
func datePtr(t *time.Time) any {
if t == nil {
return nil
}
return t.Format("2006-01-02")
}
func must(err error) {
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
+23
View File
@@ -0,0 +1,23 @@
@echo off
setlocal
cd /d "%~dp0"
echo Current directory:
cd
echo.
echo Running: git pull origin master
git pull origin master
if errorlevel 1 goto error
echo.
echo Done.
pause
exit /b 0
:error
echo.
echo Failed. See the message above.
pause
exit /b 1