3 Commits

Author SHA1 Message Date
ThearchyHelios 45513c90b7 R-b12 的尾巴:check_pgbouncer 判同一个主机端口时把主机名规范化——localhost、127.x.x.x、::1 都算本机回环,IP 按地址比(::ffff:10.0.0.5 和 10.0.0.5 相同),解析不成 IP 的按字面(小写)比、不查 DNS。补测试:localhost 对 127.0.0.1、127.0.0.1 对 ::1、IPv4 映射地址同端口都拒绝,本机另一个端口、名字不同的放行 2026-10-19 15:09:10 +08:00
ThearchyHelios d55ae68e7d 复核 R-b12(直连地址其实还是 PgBouncer、搬断点走了事务模式):check_pgbouncer 除了没给直连地址,直连地址和应用库地址连的是同一个主机端口(规范化之后比,端口不写按 5432)也拒绝启动,报错说清直连要绕过 PgBouncer;copy-to-postgres 搬断点抽成 checkpoint_conninfo:给了断点库地址用它,否则进目标库、给了直连地址就走直连,命令行加 --direct-url,不给而目标就是应用库时用 AGENTLAB_DATABASE_DIRECT_URL。补测试:同一个主机端口(大小写、用户、参数不同)拒绝、同主机另一个端口放行;搬断点缺省走直连、单给的断点库地址优先、目标是别的库不套用应用库的直连地址 2026-10-19 14:42:33 +08:00
ThearchyHelios d68ca9774f 加直连地址 AGENTLAB_DATABASE_DIRECT_URL 和 PgBouncer 事务模式开关 AGENTLAB_DB_PGBOUNCER(用户拍板):依赖会话状态的连接——收发进程间通知的那一条(LISTEN)、跨进程的锁(会话级咨询锁,另建一个直连的小池子)、断点库(缺省)——走直连地址,普通查询走 AGENTLAB_DATABASE_URL,不设就全用同一个;开关打开时普通地址不用客户端连接池、关掉 SQLAlchemy 和 asyncpg 的预备语句缓存、预备语句用随机名字(照 SQLAlchemy 文档),事务级咨询锁照常成立;开关打开却没给直连地址时拒绝启动。README 写三种部署(直连、PgBouncer 会话模式、事务模式加直连地址)和要配的 server_reset_query,照实说没在真的 PgBouncer 上跑过。补测试:地址解析和规范化、断点库缺省走直连、事务模式关掉的几样、LISTEN 和跨进程锁走直连、事务模式没给直连地址拒绝启动 2026-10-19 13:01:21 +08:00