正则表达式速查
跨语言正则模式验证与文本解析工具
ecto-migrator 将自然语言描述或 Schema 定义转换为 Ecto 迁移文件,支持表结构、索引、约束、外键关联、枚举类型及分区策略,覆盖 Elixir/Phoenix 项目的数据库变更全流程。
开发团队频繁遇到数据库结构变更需求,手写Ecto迁移文件耗时且易出错。该工具让业务人员用日常语言描述表结构、索引或关联需求,自动生成标准迁移代码,减少沟通成本和人工编码错误,确保Elixir/Phoenix项目的数据库变更加速落地。
落地案例:产品经理提出"为用户表增加手机号字段,并给邮箱建唯一索引"。开发者在工具中输入该描述,系统自动生成包含add :phone字段、create unique_index(:users, [:email])的迁移文件,同时提示大表索引需加concurrently选项。生成的代码可直接放入项目执行,无需手动查阅Ecto文档编写模板。
安装依赖
# mix.exs
defp deps do
[
{:ecto_sql, "~> 3.0"},
{:postgrex, "~> 0.16"}
]
end
生成迁移文件
mix ecto.gen.migration create_users_table
常用指令示例
# 创建带字段的表
"Create users table with email and name"
→ create table(:users) do ... end
# 添加列
"Add phone to users"
→ alter table(:users), add :phone
# 唯一索引
"Make email unique on users"
→ create unique_index(:users, [:email])
# 检查约束
"Add a check constraint on orders amount > 0"
→ create constraint(:orders, ...)
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | 自然语言描述、Schema 定义、字段清单、索引/约束需求、多租户配置 |
| 输出 | Ecto 迁移文件(.exs)、change/up/down 函数、索引约束代码、外键配置、数据迁移模板 |
| 适用人群 | Elixir/Phoenix 开发者、需快速建库的团队、多租户系统维护者、Ecto 新手 |
| 不包含 | 连接池配置、生产执行权限、查询优化、非 PG 数据库支持 |
concurrently: true 并配合 @disable_ddl_transaction true原始链接:https://github.com/openclaw/skills/tree/main/skills/gchapim/ecto-migrator/SKILL.md
来源类型:GitHub 仓库