忧郁症
Migraters 允许您在开发过程中保存 SQL 变化, 以便后期在上游应用 。 随着代码库的复杂程度和团队规模的增长,跟踪和同步这些变化变得更加困难。 弥撒是为此而建的.
典型的工作流程是:
- 在发展方面,创建一个或多个移民档案,对其进行测试,并运行移民.
- 在部署时,这些脚本被复制到制作中,并再次迁移,因此上游数据库与开发匹配.
迁移命令可用于 许多语言 支助 许多 SQL 方言。 。 。 .
安装技能
Claude或Cursor的代理技能: 技术/技能。 。 。 .
npx skills add https://github.com/deterministic-code/migraters/tree/main/skill -g -a cursor -a claude-code -y --copy
安装
从 npm 安装
npm install @deterministic-code/migraters
技能提示
自然语言促使 技能 直接映射到 CLI 命令 :
| 提示 | 运行 |
|---|---|
| 安装 sqlite 和 postgres 的迁移器 | npm install → npx migrate-init --language typescript --dialect sqlite --dialect postgres |
| 添加驱动程序预告 | npx migrate-init --language <language> 包含先前的方言 加号 oracle |
| 创建新迁移 | npx migrate-create |
| 向上迁移 | npx migrate-up |
| 向下迁移 | npx migrate-down |
快速实例
user.sql数字 :
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email TEXT NOT NULL
);
npx migrate-init --language typescript --dialect sqlite
npx migrate-setup --provider sqlite --connection ./app.sqlite
npx migrate-create --provider sqlite --name add_users
touch user.sql
cat user.sql > sql/sqlite/migrations/0001_add_users_up.sql
npx migrate-up --provider sqlite --connection ./app.sqlite
图标
输入
这个 migrate-init 命令安装语言和数据源依赖,并构建迁移命令.
npx migrate-init --language typescript --dialect sqlite --dialect postgres
npx migrate-init --language csharp --dialect sqlite
npx migrate-init --language rust --dialect sqlite
设置
创建 migrates 财务报告和审定财务报表 migrate_logs 表格和迁移目录。 同上,注:.
npx migrate-setup --provider <sqlite|postgres|mysql|sqlserver|oracle> --connection <url> [--migrations-path <dir>] [--and-up] [--create-database] [--batch-separator <token>]
--create-database 创建名为 --connection 如果它不存在的话. --and-up 运行 migrate-up 设置后马上。 默认迁移目录为 ./sql/<dialect>/migrations。 。 。 .
上来
应用每一个待迁移, 每一个在自己的交易.
npx migrate-up --provider <…> --connection <url> [--migrations-path <dir>] [--migrations-root <dir>] [--one] [--batch-separator <token>]
--migrations-root 看着下面 <root>/<dialect>/migrations 默认为 sql。当 --migrations-path 已经设定. --one 仅适用下一次待定的迁移。 批量分隔线从 GO 默认( sqlcmd- style),或带有 --batch-separator。跟踪 -- 注释或 YYYY-MM-DD 允许约会。 每批分别执行.
下来
倒退了最近应用的迁移,一步。 类型 confirm 或通过 --confirm。 。 。 .
npx migrate-down --provider <…> --connection <url> [--migrations-path <dir>] [--migrations-root <dir>] [--confirm] [--batch-separator <token>]
创建
写下一个 <NNNN>_<name>_up.sql 财务报告和审定财务报表 <NNNN>_<name>_down.sql 双人 名称必须匹配 ^[a-z][a-z0-9_]*$。 。 。 .
npx migrate-create --provider <…> --name <snake_case_slug> [--migrations-path <dir>]
API 密码
四个 IMigrater 动词是每种语言的一种合同: cli.yaml, (中文(简体) ), IMigrater 内 api.yaml。每种语言都执行该接口。 插入并删除目录 up 财务报告和审定财务报表 down。 。 。 . migrate-init 仅居住在 cli.yaml。 。 。 .
| 动词 | 类型脚本 IMigrater | 锈 IMigrater | C# (韩语) IMigrater |
|---|---|---|---|
| 设置 | setup | setup | Setup |
| 上来 | up | up | Up |
| 下来 | down | down | Down |
| 创建 | create | create | Create |
语文支助
| 数据源 | C# (韩语) | 锈 | 类型脚本 |
|---|---|---|---|
| 块状 | 对 | 对 | 对 |
| 邮资 | 对 | 对 | 对 |
| 密苏里语name | 对 | 对 | 对 |
| sqlserver 服务器 | 对 | 对 | 对 |
| 预告 | 对 | 对 | 对 |
供应商
sqlite, (中文(简体) ), postgres, (中文(简体) ), mysql, (中文(简体) ), sqlserver,以及 oracle。 。 。 .
何时 --connection 省略,跑者读取该方言的第一组环境变量:
| 提供者 | 环境变量 |
|---|---|
| 块状 | SQLITE_PATH, (中文(简体) ), DB_PATH |
| 邮资 | PG_CONNECTION_STRING, (中文(简体) ), DATABASE_URL |
| 密苏里语name | MYSQL_URL, (中文(简体) ), DATABASE_URL |
| sqlserver 服务器 | MSSQL_URL, (中文(简体) ), DATABASE_URL |
| 预告 | ORACLE_CONNECT_STRING, (中文(简体) ), DATABASE_URL |
规格
共享 argv、旗帜、别名、退出代码和命令行为 cli.yaml。 。 。 . IMigrater (单位:千美元)setup, (中文(简体) ), up, (中文(简体) ), down, (中文(简体) ), create生活在这里 api.yaml。 。 。 . migrate-init 仅限CLI。 SQL 拼写仍为提供者细节.