Skip to content

Commit 4d9e6d6

Browse files
committed
Add Subscription Migration File
1 parent 30e8748 commit 4d9e6d6

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package migrations
2+
3+
import (
4+
"github.com/pocketbase/pocketbase/core"
5+
m "github.com/pocketbase/pocketbase/migrations"
6+
)
7+
8+
func init() {
9+
m.Register(func(app core.App) error {
10+
// add up queries...
11+
collection := core.NewBaseCollection("subscriptions")
12+
13+
collection.Fields.Add(&core.RelationField{
14+
Name: "user_id",
15+
CollectionId: "users", // 目标集合 ID 或名称
16+
CascadeDelete: false,
17+
MaxSelect: 1,
18+
})
19+
20+
collection.Fields.Add(&core.SelectField{
21+
Name: "plan",
22+
Values: []string{"starter", "plus", "pro"},
23+
MaxSelect: 1,
24+
Required: true,
25+
})
26+
27+
collection.Fields.Add(&core.TextField{
28+
Name: "stripe_invoice_id",
29+
Required: true,
30+
})
31+
32+
collection.Fields.Add(&core.DateField{
33+
Name: "expires_at",
34+
Required: true,
35+
})
36+
37+
// 创建时自动设为当前时间
38+
collection.Fields.Add(&core.AutodateField{
39+
Name: "created",
40+
OnCreate: true,
41+
})
42+
43+
// 创建和更新时都自动同步时间
44+
collection.Fields.Add(&core.AutodateField{
45+
Name: "updated",
46+
OnCreate: true,
47+
OnUpdate: true,
48+
})
49+
50+
collection.Indexes = append(collection.Indexes,
51+
"CREATE UNIQUE INDEX `idx_stripe_inv` ON `subscriptions` (`stripe_invoice_id`)",
52+
)
53+
54+
return app.Save(collection)
55+
}, func(app core.App) error {
56+
// add down queries...
57+
collection, err := app.FindCollectionByNameOrId("subscriptions")
58+
if err != nil {
59+
return nil // 已经删了就不报错
60+
}
61+
return app.Delete(collection)
62+
})
63+
}

0 commit comments

Comments
 (0)