Schema Evolution Manager 使用教程

Schema Evolution Manager 使用教程

schema-evolution-manager Schema Evolution Manager makes it very simple for engineers to contribute schema changes to a postgresql database, managing the schema evolutions as proper source code. Schema changes are deployed as gzipped tarballs named with the corresponding git tag. 项目地址: https://gitcode.com/gh_mirrors/sc/schema-evolution-manager

1. 项目介绍

Schema Evolution Manager(简称 sem)是一个用于简化 PostgreSQL 数据库模式变更管理的开源工具。它允许工程师将数据库模式变更作为源代码进行管理,并将这些变更以压缩的 tarball 文件形式部署,文件名与相应的 Git 标签对应。通过 sem,工程师可以轻松地创建和管理数据库模式升级脚本,并确保这些脚本在所有环境中按时间顺序应用。

sem 的核心目标是提供一个简单、可靠的工具来管理数据库模式变更,避免复杂的依赖关系,并确保模式变更的增量性和可重复性。它不支持回滚操作,而是鼓励通过小步快跑的方式进行模式变更,以降低风险。

2. 项目快速启动

安装

使用 Homebrew 安装
brew install schema-evolution-manager
直接安装(无需 RubyGems)
git clone git@github.com:mbryzek/schema-evolution-manager.git
cd schema-evolution-manager
git checkout 0.9.54
ruby ./configure.rb
sudo ./install.rb
使用 RubyGems 安装
gem install schema-evolution-manager

初始化项目

git init /tmp/sample
sem-init --dir /tmp/sample --url postgresql://postgres@localhost/sample

创建第一个 SQL 脚本

cd /tmp/sample
echo "create table tmp_table (id integer)" > new.sql
sem-add ./new.sql

应用变更到本地数据库

cd /tmp/sample
createdb sample
sem-apply --url postgresql://postgres@localhost/sample

提交变更

git commit -m "Adding a new tmp table to test sem process"

发布版本

cd /tmp/sample
sem-dist

3. 应用案例和最佳实践

应用案例

在 Gilt Groupe 公司,sem 自 2012 年初开始使用,显著提高了生产环境中数十个独立 PostgreSQL 数据库的模式部署可靠性。通过将模式变更作为源代码管理,并使用 sem 进行自动化部署,团队能够更轻松地跟踪和管理数据库模式变更。

最佳实践

  1. 小步快跑:每次只进行小的模式变更,避免一次性进行大规模的变更,以降低风险。
  2. 独立部署:将模式变更与应用程序代码变更分开部署,确保应用程序代码可以回滚,而模式变更不会受到影响。
  3. 版本控制:使用 Git 管理模式变更脚本,并通过 sem 自动生成版本号和压缩包,确保变更的可重复性和可追溯性。

4. 典型生态项目

PostgreSQL

sem 主要用于管理 PostgreSQL 数据库的模式变更。它与 PostgreSQL 9.x 版本兼容,并尽量减少对高级功能的使用,以确保在 8.x 系列中也能正常工作。

Git

sem 依赖 Git 进行版本控制,所有版本变更都通过 Git 标签进行管理。通过 Git,团队可以轻松地跟踪和管理模式变更的历史记录。

Ruby

sem 使用 Ruby 编写,并支持 Ruby 2.x 版本。虽然 sem 不依赖 RubyGems,但用户可以选择使用 RubyGems 进行安装。

通过以上模块的介绍,您可以快速了解并上手使用 Schema Evolution Manager 进行 PostgreSQL 数据库模式变更管理。

schema-evolution-manager Schema Evolution Manager makes it very simple for engineers to contribute schema changes to a postgresql database, managing the schema evolutions as proper source code. Schema changes are deployed as gzipped tarballs named with the corresponding git tag. 项目地址: https://gitcode.com/gh_mirrors/sc/schema-evolution-manager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廉欣盼Industrious

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值