Ecto Migrator

根据自然语言或模式描述生成 Ecto 迁移文件。支持处理表、列、索引、约束、引用、枚举及分区。具备可逆迁移、数据迁移及多租户模式支持。适用于在 Elixir 项目中创建或修改数据库模式、添加索引、修改表结构、创建枚举或执行数据迁移。

安装

概览

什么是Ecto Migrator

Ecto Migrator 是一款专为 Elixir 开发者设计的智能数据库迁移生成工具,能够根据自然语言描述自动生成符合最佳实践的 Ecto 迁移文件。该工具的核心价值在于将繁琐的数据库模式变更操作转化为直观的文本指令,显著降低编写迁移脚本的认知负担。通过解析用户输入的简单语句如“创建包含邮箱和姓名的用户表”或“为订单添加金额检查约束”,Ecto Migrator 可自动推导出对应的 `create table`、`alter table` 等迁移代码结构,并遵循 Elixir/Phoenix 项目的标准规范进行输出。它不仅支持基础的表结构与字段定义,还深入覆盖了索引策略、外键约束、多租户架构模式以及 PostgreSQL 扩展集成等高级特性,确保生成的迁移既功能完备又具备生产环境适用性。

核心功能特点

  1. 支持自然语言解析,可将人类可读的描述(如’添加手机号到用户表’)直接转换为标准 Ecto 迁移代码
  2. 全面覆盖数据库对象类型:包括表、列、索引、唯一约束、引用关系及枚举类型
  3. 内置多租户模式支持,自动为所有表添加 tenant_id 字段并配置复合索引
  4. 提供可逆与不可逆迁移两种模式,对数据迁移、列类型修改等复杂操作给出明确指导
  5. 集成 PostgreSQL 扩展管理(如 citext、pgcrypto),支持 GIN 索引优化 JSONB 和数组查询性能

适用场景

Ecto Migrator 特别适用于需要频繁调整数据库结构的 Elixir 项目场景。在敏捷开发过程中,当业务需求变化导致必须新增字段、重构表关系或添加业务规则约束时,开发者无需手动编写复杂的 SQL DDL 语句,只需用自然语言描述变更意图即可获得高质量迁移文件。例如,在构建 SaaS 应用时,系统可快速为所有资源表注入租户隔离所需的 tenant_id 字段,并自动生成对应的全局索引;当需要实现软删除功能时,也可轻松添加 deleted_at 时间戳字段并设置默认值。对于大型系统的数据迁移任务,该工具推荐采用分阶段策略——先执行结构变更,再通过独立的数据迁移文件完成历史数据回填,避免因单次迁移耗时过长而阻塞服务上线。此外,在处理高并发写入的 OLTP 系统中,其提供的并发索引创建机制允许在不锁表的情况下安全更新索引结构,最大限度减少对线上业务的影响。