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