用途:面向 PocketBase 0.20+ 的 Go 迁移系统指南,帮助开发者以代码方式创建和修改集合、字段、关系与访问规则。
主要能力:介绍迁移结构(m.Register 注册 up/down 函数);集合操作(NewBaseCollection 创建、FindCollectionByNameOrId 查找后 Save 更新);常见字段类型(Text、Number、Bool、Email、Date、Autodate、Select、File、Editor、JSON);关系字段(RelationField,使用 MaxSelect 与 CollectionId,系统用户集合 ID 为 pb_users_auth);集合规则(List/View/Create/Update/DeleteRule,用 types.Pointer 赋值);视图集合(NewViewCollection 配合 SQL 查询);错误处理与最佳实践。
使用方式:核心工作流要求一次只写一个迁移,立即用 mise run migrate 执行,再用 mise run show-collections 验证,然后才写下一个;破坏性变更前运行 mise run backup。相关命令:mise run makemigration <name>、mise run migrate、mise run migratedown、mise run show-collections、mise run backup。
适用场景:需要版本化管理 PocketBase 数据库结构、按依赖顺序创建集合与关系、配置访问规则或构建视图集合的项目。
限制与注意:关系字段用 MaxSelect 而非 Max,EditorField 用 MaxSize,数字 min/max 用 types.Pointer(0.0),空规则需 types.Pointer(""),自引用关系需单独迁移,字段名不得与系统字段 id、created、updated 冲突。官方文档见 https://pocketbase.io/docs/go-collections/。