ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Pigsty 中的 Bytebase:为 PostgreSQL 打造开源的 Schema 变更与数据库迁移工作台

Pigsty 中的 Bytebase:为 PostgreSQL 打造开源的 Schema 变更与数据库迁移工作台 数据库运维云原生高可用监控【免费下载链接】pigstyEnterprise-Grade OSS PostgreSQL Distribution with HA, PITR, IaC, Monitor, 12 kernel forks and 575 PG extensions. Best-of-breed products integrated as a platform. Self-host Postgres like a Pro!项目地址https://gitcode.com/GitHub_Trending/pi/pigsty点击查看免费下载导读Bytebase 是一款开源的 Schema 迁移工具schema migrator支持 PostgreSQL 及其他主流数据库。在 Pigsty 项目中Bytebase 作为「应用层」组件被封装在 app/bytebase 目录下通过 Docker Compose 以极简方式一键拉起并可选择将元数据存储在 Pigsty 托管的 PostgreSQL 实例中获得更高的持久性与可运维性。阅读本文后你将掌握在 Pigsty 环境中配置.env启动参数、使用 Makefile 管理容器生命周期、把 Bytebase 元数据库从内置 PostgreSQL 切换到外部 PostgreSQL以及通过 Pigsty 门户NGINX 反向代理统一暴露访问入口的完整实战流程。Bytebase 在 Pigsty 中的定位Bytebase 官方定位为「面向开发者的数据库变更管理平台」其核心能力是提供 Web 化的 Schema 变更DDL/DML审核、执行与回滚工作流。在 Pigsty 的编排体系中它被归入app/目录下的一组 Docker 化应用与 pgadmin、pgweb、postgrest 等并列并预置了与 Pigsty 托管 PostgreSQL 联动的用户、数据库与门户portal配置。从 app.yml 的注释可以看到Bytebase 被归类为「需要精细配置的复杂软件」sophisticated software需要通过apps:定义或.env文件提供连接参数后启动而非像pgweb那样零配置直接拉起# ./app.yml -e apppgweb # simple app can be launched directly # ./app.yml -e appbytebase # for sophisticated software快速开始配置.env并启动Bytebase 的启动配置集中在app/bytebase/目录下的.env文件中该文件由用户自行创建仓库中的 docker-compose.yml 通过${BB_*}变量引用它。核心可配置环境变量有三个BB_PORT8887 BB_DOMAINhttp://ddl.pigsty BB_PGURLpostgresql://dbuser_bytebase:DBUser.Bytebase10.10.10.10:5432/bytebase?sslmodeprefer变量默认值/示例作用BB_PORT8887Bytebase 服务对外监听的端口同时用于 Docker 端口映射与容器内--port参数BB_DOMAINhttp://ddl.pigsty外部访问 URLexternal URL对应容器启动参数--external-urlBB_PGURLpostgresql://dbuser_bytebase:DBUser.Bytebase10.10.10.10:5432/bytebase指向外部 PostgreSQL 的连接串留空则使用 Bytebase 内置数据库配置完成后直接在app/bytebase/目录下执行make up # docker compose upmake up实际调用的是docker compose up -d其具体编排逻辑见 docker-compose.ymlservices: bytebase: container_name: bytebase image: bytebase/bytebase:latest restart: unless-stopped environment: PG_URL: ${BB_PGURL} ports: - ${BB_PORT}:${BB_PORT} command: | --external-url ${BB_DOMAIN} --port ${BB_PORT}启动成功后通过make view查看访问入口浏览器访问http://ddl.pigsty或http://10.10.10.10:8887即可进入 Bytebase 控制台。仓库还提供了在线演示环境用户名adminpigsty.cc密码pigsty便于快速体验功能。Makefile 命令全解app/bytebase/Makefile封装了 Bytebase 容器全生命周期的管理命令覆盖「拉起、运行、查看、日志、检视、停止、清理、镜像维护」等场景命令作用make up以 Docker Compose 极简模式拉起 Bytebasedocker compose up -dmake run使用本地数据目录与外部 PostgreSQL 直接docker run启动make view打印 Bytebase 访问地址make logdocker logs -f bytebase跟随容器日志make infodocker inspect bytebase | jq检视容器元信息make stop停止 Bytebase 容器make clean停止并强制删除 Bytebase 容器make pull拉取最新镜像bytebase/bytebase:latestmake rmi删除本地 Bytebase 镜像make save将镜像保存为/tmp/docker/bytebase.tgzgzip 压缩make load从/tmp/docker/bytebase.tgz加载镜像其中make run展示了脱离 Compose、直接以 Docker CLI 启动的完整形态它会在宿主机准备/data/bytebase/data作为持久化数据卷并通过PG_URL环境变量注入外部 PostgreSQL 连接串docker run --init --name bytebase \ --restart always --detach \ --publish 8887:8887 \ --volume /data/bytebase/data:/var/opt/bytebase \ -e PG_URLpostgresql://dbuser_bytebase:DBUser.Bytebase10.10.10.10:5432/bytebase \ bytebase/bytebase:latest \ --data /var/opt/bytebase \ --external-url http://ddl.pigsty \ --port 8887make save/make load这对命令特别适合内网环境先在可联网机器上make save导出镜像再在目标机器上make load导入即可绕过镜像源限制完成离线部署。使用外部 PostgreSQL 作为元数据库Bytebase 默认使用其内置的 PostgreSQL 数据库容器内/var/opt/bytebase数据目录保存元数据。若希望获得更高的数据持久性与可运维性可以改用 Pigsty 托管的 PostgreSQL 实例作为外部元数据库。第一步在 Pigsty 清单中定义用户与数据库在 Pigsty 集群配置如 conf/demo/demo.yml的pg_users与pg_databases中预置专用账号与数据库pg_users: - { name: dbuser_bytebase ,password: DBUser.Bytebase ,pgbouncer: true ,roles: [ dbrole_admin ] ,comment: admin user for bytebase database } pg_databases: - { name: bytebase ,owner: dbuser_bytebase ,revokeconn: true ,comment: bytebase primary database }上述配置中几个关键参数值得注意pgbouncer: true为dbuser_bytebase生成 PgBouncer 接入账号Bytebase 可通过连接池访问roles: [dbrole_admin]赋予dbrole_admin管理角色使 Bytebase 拥有执行 Schema 变更所需的建表/变更权限revokeconn: truebytebase数据库创建后回收 PUBLIC 连接权限仅允许属主dbuser_bytebase连接符合最小权限原则。第二步用 Pigsty 脚本创建业务用户与数据库配置写入清单并完成 Pigsty 安装后使用仓库提供的bin/脚本对应 playbook 为 pgsql-user.yml 与 pgsql-db.yml执行创建bin/pgsql-user pg-meta dbuser_bytebase bin/pgsql-db pg-meta bytebasebin/pgsql-user的调用形式为bin/pgsql-user cls username其中pg-meta是目标集群名其底层会展开为./pgsql-user.yml -l pg-meta -e usernamedbuser_bytebasebin/pgsql-db同理负责在集群中创建bytebase数据库并设置属主。第三步验证连通性创建完成后用psql直接验证连接串是否可用psql postgres://dbuser_bytebase:DBUser.Bytebase10.10.10.10:5432/bytebase验证通过后将BB_PGURL指向该连接串如本文开头所示重新make upBytebase 即会把元数据写入外部 PostgreSQL。需要说明的是切换到外部元数据库后原先容器内/var/opt/bytebase中的内置数据将不再作为主存储外部库成为唯一的元数据来源。与 Pigsty 门户集成一键暴露访问入口Bytebase 默认监听127.0.0.1:8887。在完整版配置中Pigsty 通过infra_portal将各应用统一暴露在 NGINX 门户域名之下。以 conf/demo/demo.yml 为例infra_portal: bytebase: { domain: ddl.pigsty.cc ,endpoint: 127.0.0.1:8887 }在启用应用的配置如 conf/fat.yml、conf/rich.yml中还预置了apps定义将.env的注入也纳入编排使部署完全自动化apps: bytebase: BB_PGURL: postgresql://dbuser_bytebase:DBUser.Bytebase10.10.10.10:5432/bytebase?sslmodeprefer此时通过./app.yml -e appbytebase即可完成「拷贝 Compose 资源 → 覆盖.env配置 →docker compose up」的完整流程机制见 app.yml。由于 Bytebase 的 Web 界面依赖 WebSocket 做实时推送门户条目还支持websocket: true标记见 conf/fat.yml保证反向代理下连接保持正常。注意事项HTTPS 与 CA 证书信任Bytebase 以https协议对外提供服务时浏览器会校验其证书链。Pigsty 的证书体系由 roles/ca 角色签发相关配置见 cert.yml。若使用 Pigsty 签发的自建 CA 证书需要将 CA 公钥files/pki/ca/ca.crt导入浏览器并信任否则可采用 Chrome 的临时绕过方案输入thisisunsafe跳过证书告警。小结通过 Pigsty 的 app/bytebase 目录你可以用最短的路径获得一套生产可用的 Bytebase 数据库变更管理平台make up一键拉起、Makefile 全生命周期管理、pg_users/pg_databasesbin/pgsql-user/bin/pgsql-db完成外部元数据库接入再借由infra_portal门户实现统一域名访问。这一组合让「Schema 迁移工作台」与 Pigsty 托管的 PostgreSQL 集群形成了完整的闭环库是 Pigsty 建的、用户是 Pigsty 管的、入口是 Pigsty 反代暴露的运维视角下一切都收敛在同一个配置体系内。赞分享数据库运维云原生高可用监控【免费下载链接】pigstyEnterprise-Grade OSS PostgreSQL Distribution with HA, PITR, IaC, Monitor, 12 kernel forks and 575 PG extensions. Best-of-breed products integrated as a platform. Self-host Postgres like a Pro!项目地址https://gitcode.com/GitHub_Trending/pi/pigsty点击查看免费下载相关推荐Assistant_Pepe_32B性能优化技巧7个提升推理速度的方法Assistant_Pepe_32B性能优化技巧7个提升推理速度的方法 Assistant_Pepe_32B是一个基于Qwen3 32B微调的高性能AI助手模profile-summary-for-github数据库迁移Schema变更与数据迁移工具profile summary for github数据库迁移Schema变更与数据迁移工具 引言数据库迁移的必要性 在使用profile summary后端数据可视化开发工具dub数据迁移数据库schema变更与数据迁移策略dub数据迁移数据库schema变更与数据迁移策略 引言 在现代营销团队的开源链接管理基础设施dub项目中数据库schema的演进和数据迁移是不可避免的技术后端前端数据分析上一篇3大实战策略构建Qwen大语言模型质量保障体系下一篇God生产环境部署指南安全、稳定、高性能配置方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表