60 lines
1.0 KiB
Go
60 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
|
|
"allapp-go/internal/bootstrap/boots"
|
|
"allapp-go/internal/config"
|
|
)
|
|
|
|
func main() {
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
exitErr("load config", err)
|
|
}
|
|
|
|
pool, err := boots.InitPgsql(cfg)
|
|
if err != nil {
|
|
exitErr("connect postgres", err)
|
|
}
|
|
defer pool.Close()
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
|
defer cancel()
|
|
|
|
rows, err := pool.Query(ctx, `
|
|
select table_name
|
|
from information_schema.tables
|
|
where table_schema = 'public'
|
|
and table_name like 'b_clothing_%'
|
|
order by table_name
|
|
`)
|
|
if err != nil {
|
|
exitErr("query tables", err)
|
|
}
|
|
defer rows.Close()
|
|
|
|
count := 0
|
|
for rows.Next() {
|
|
var tableName string
|
|
if err := rows.Scan(&tableName); err != nil {
|
|
exitErr("scan table", err)
|
|
}
|
|
count++
|
|
fmt.Println(tableName)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
exitErr("read rows", err)
|
|
}
|
|
|
|
fmt.Printf("total=%d\n", count)
|
|
}
|
|
|
|
func exitErr(step string, err error) {
|
|
fmt.Fprintf(os.Stderr, "%s failed: %v\n", step, err)
|
|
os.Exit(1)
|
|
}
|