20260508222203
This commit is contained in:
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
|
||||||
Reference in new issue
Block a user