mirror of
https://github.com/usual2970/certimate.git
synced 2025-06-07 21:19:51 +00:00
feat(migration): tracer
This commit is contained in:
parent
3bb88d9f93
commit
bf1d03a30e
@ -2,7 +2,6 @@ package migrations
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
x509 "crypto/x509"
|
x509 "crypto/x509"
|
||||||
"log/slog"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
@ -12,7 +11,8 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
slog.Info("[CERTIMATE] migration: ready ...")
|
tracer := NewTracer("to v0.3")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// backup collection records
|
// backup collection records
|
||||||
collectionRecords := make([]*core.Record, 0)
|
collectionRecords := make([]*core.Record, 0)
|
||||||
@ -30,7 +30,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
collectionRecords = append(collectionRecords, records...)
|
collectionRecords = append(collectionRecords, records...)
|
||||||
|
|
||||||
slog.Info("[CERTIMATE] migration: collection '" + collection.Name + "' backed up")
|
tracer.Printf("collection '%s' backed up", collection.Name)
|
||||||
|
|
||||||
if collection.Name == "access" {
|
if collection.Name == "access" {
|
||||||
collection.Fields.RemoveByName("usage")
|
collection.Fields.RemoveByName("usage")
|
||||||
@ -107,7 +107,7 @@ func init() {
|
|||||||
{
|
{
|
||||||
app.Delete(collection)
|
app.Delete(collection)
|
||||||
|
|
||||||
slog.Info("[CERTIMATE] migration: collection '" + collection.Name + "' truncated")
|
tracer.Printf("collection '%s' truncated", collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1729,7 +1729,7 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
slog.Info("[CERTIMATE] migration: collections imported")
|
tracer.Printf("collections imported")
|
||||||
|
|
||||||
// restore records
|
// restore records
|
||||||
for _, record := range collectionRecords {
|
for _, record := range collectionRecords {
|
||||||
@ -1795,12 +1795,11 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
slog.Info("[CERTIMATE] migration: collection '" + record.Collection().Name + "' record #" + record.Id + " updated")
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, record.Collection().Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
slog.Info("[CERTIMATE] migration: done")
|
tracer.Printf("done")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,14 +7,17 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1740050400")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// update collection `certificate`
|
// update collection `certificate`
|
||||||
{
|
{
|
||||||
certimateCollection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np")
|
collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := certimateCollection.Fields.AddMarshaledJSONAt(4, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(4, []byte(`{
|
||||||
"autogeneratePattern": "",
|
"autogeneratePattern": "",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "plmambpz",
|
"id": "plmambpz",
|
||||||
@ -31,7 +34,7 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := certimateCollection.Fields.AddMarshaledJSONAt(5, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(5, []byte(`{
|
||||||
"autogeneratePattern": "",
|
"autogeneratePattern": "",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "49qvwxcg",
|
"id": "49qvwxcg",
|
||||||
@ -48,7 +51,7 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := certimateCollection.Fields.AddMarshaledJSONAt(7, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(7, []byte(`{
|
||||||
"autogeneratePattern": "",
|
"autogeneratePattern": "",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "agt7n5bb",
|
"id": "agt7n5bb",
|
||||||
@ -65,19 +68,21 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := app.Save(certimateCollection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update collection `workflow`
|
// update collection `workflow`
|
||||||
{
|
{
|
||||||
workflowCollection, err := app.FindCollectionByNameOrId("tovyif5ax6j62ur")
|
collection, err := app.FindCollectionByNameOrId("tovyif5ax6j62ur")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := workflowCollection.Fields.AddMarshaledJSONAt(6, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(6, []byte(`{
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "awlphkfe",
|
"id": "awlphkfe",
|
||||||
"maxSize": 5000000,
|
"maxSize": 5000000,
|
||||||
@ -90,7 +95,7 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := workflowCollection.Fields.AddMarshaledJSONAt(7, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(7, []byte(`{
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "g9ohkk5o",
|
"id": "g9ohkk5o",
|
||||||
"maxSize": 5000000,
|
"maxSize": 5000000,
|
||||||
@ -103,19 +108,21 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := app.Save(workflowCollection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update collection `workflow_output`
|
// update collection `workflow_output`
|
||||||
{
|
{
|
||||||
workflowOutputCollection, err := app.FindCollectionByNameOrId("bqnxb95f2cooowp")
|
collection, err := app.FindCollectionByNameOrId("bqnxb95f2cooowp")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := workflowOutputCollection.Fields.AddMarshaledJSONAt(4, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(4, []byte(`{
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "c2rm9omj",
|
"id": "c2rm9omj",
|
||||||
"maxSize": 5000000,
|
"maxSize": 5000000,
|
||||||
@ -128,11 +135,14 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := app.Save(workflowOutputCollection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -11,6 +11,9 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1742209200")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// create collection `workflow_logs`
|
// create collection `workflow_logs`
|
||||||
{
|
{
|
||||||
jsonData := `{
|
jsonData := `{
|
||||||
@ -167,6 +170,8 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' created", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// migrate data
|
// migrate data
|
||||||
@ -215,6 +220,8 @@ func init() {
|
|||||||
if err := app.Save(record); err != nil {
|
if err := app.Save(record); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,6 +250,8 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// migrate data
|
// migrate data
|
||||||
@ -321,6 +330,8 @@ func init() {
|
|||||||
if err := app.Save(workflowRun); err != nil {
|
if err := app.Save(workflowRun); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", workflowRun.Id, workflowRun.Collection().Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,8 +347,11 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,74 +7,86 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
tracer := NewTracer("(v0.3)1742392800")
|
||||||
if err != nil {
|
tracer.Printf("go ...")
|
||||||
return err
|
|
||||||
|
// update collection `access`
|
||||||
|
{
|
||||||
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "hwy7m03o",
|
||||||
|
"maxSelect": 1,
|
||||||
|
"name": "provider",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "select",
|
||||||
|
"values": [
|
||||||
|
"1panel",
|
||||||
|
"acmehttpreq",
|
||||||
|
"akamai",
|
||||||
|
"aliyun",
|
||||||
|
"aws",
|
||||||
|
"azure",
|
||||||
|
"baiducloud",
|
||||||
|
"baishan",
|
||||||
|
"baotapanel",
|
||||||
|
"byteplus",
|
||||||
|
"cachefly",
|
||||||
|
"cdnfly",
|
||||||
|
"cloudflare",
|
||||||
|
"cloudns",
|
||||||
|
"cmcccloud",
|
||||||
|
"ctcccloud",
|
||||||
|
"cucccloud",
|
||||||
|
"dnsla",
|
||||||
|
"dogecloud",
|
||||||
|
"dynv6",
|
||||||
|
"edgio",
|
||||||
|
"fastly",
|
||||||
|
"gname",
|
||||||
|
"gcore",
|
||||||
|
"godaddy",
|
||||||
|
"goedge",
|
||||||
|
"huaweicloud",
|
||||||
|
"jdcloud",
|
||||||
|
"k8s",
|
||||||
|
"local",
|
||||||
|
"namecheap",
|
||||||
|
"namedotcom",
|
||||||
|
"namesilo",
|
||||||
|
"ns1",
|
||||||
|
"powerdns",
|
||||||
|
"qiniu",
|
||||||
|
"qingcloud",
|
||||||
|
"rainyun",
|
||||||
|
"safeline",
|
||||||
|
"ssh",
|
||||||
|
"tencentcloud",
|
||||||
|
"ucloud",
|
||||||
|
"upyun",
|
||||||
|
"volcengine",
|
||||||
|
"webhook",
|
||||||
|
"westcn"
|
||||||
|
]
|
||||||
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := app.Save(collection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update field
|
tracer.Printf("done")
|
||||||
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
return nil
|
||||||
"hidden": false,
|
|
||||||
"id": "hwy7m03o",
|
|
||||||
"maxSelect": 1,
|
|
||||||
"name": "provider",
|
|
||||||
"presentable": false,
|
|
||||||
"required": false,
|
|
||||||
"system": false,
|
|
||||||
"type": "select",
|
|
||||||
"values": [
|
|
||||||
"1panel",
|
|
||||||
"acmehttpreq",
|
|
||||||
"akamai",
|
|
||||||
"aliyun",
|
|
||||||
"aws",
|
|
||||||
"azure",
|
|
||||||
"baiducloud",
|
|
||||||
"baishan",
|
|
||||||
"baotapanel",
|
|
||||||
"byteplus",
|
|
||||||
"cachefly",
|
|
||||||
"cdnfly",
|
|
||||||
"cloudflare",
|
|
||||||
"cloudns",
|
|
||||||
"cmcccloud",
|
|
||||||
"ctcccloud",
|
|
||||||
"cucccloud",
|
|
||||||
"dnsla",
|
|
||||||
"dogecloud",
|
|
||||||
"dynv6",
|
|
||||||
"edgio",
|
|
||||||
"fastly",
|
|
||||||
"gname",
|
|
||||||
"gcore",
|
|
||||||
"godaddy",
|
|
||||||
"goedge",
|
|
||||||
"huaweicloud",
|
|
||||||
"jdcloud",
|
|
||||||
"k8s",
|
|
||||||
"local",
|
|
||||||
"namecheap",
|
|
||||||
"namedotcom",
|
|
||||||
"namesilo",
|
|
||||||
"ns1",
|
|
||||||
"powerdns",
|
|
||||||
"qiniu",
|
|
||||||
"qingcloud",
|
|
||||||
"rainyun",
|
|
||||||
"safeline",
|
|
||||||
"ssh",
|
|
||||||
"tencentcloud",
|
|
||||||
"ucloud",
|
|
||||||
"upyun",
|
|
||||||
"volcengine",
|
|
||||||
"webhook",
|
|
||||||
"westcn"
|
|
||||||
]
|
|
||||||
}`)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return app.Save(collection)
|
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
@ -7,6 +7,9 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1742644800")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// update collection `workflow_run`
|
// update collection `workflow_run`
|
||||||
{
|
{
|
||||||
collection, err := app.FindCollectionByNameOrId("qjp8lygssgwyqyz")
|
collection, err := app.FindCollectionByNameOrId("qjp8lygssgwyqyz")
|
||||||
@ -35,6 +38,8 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update collection `workflow_output`
|
// update collection `workflow_output`
|
||||||
@ -61,6 +66,8 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update collection `workflow_logs`
|
// update collection `workflow_logs`
|
||||||
@ -105,6 +112,8 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update collection `access`
|
// update collection `access`
|
||||||
@ -182,8 +191,11 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,6 +7,9 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1743264000")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// update collection `settings`
|
// update collection `settings`
|
||||||
{
|
{
|
||||||
collection, err := app.FindCollectionByNameOrId("dy6ccjb60spfy6p")
|
collection, err := app.FindCollectionByNameOrId("dy6ccjb60spfy6p")
|
||||||
@ -52,6 +55,8 @@ func init() {
|
|||||||
if err := app.Save(record); err != nil {
|
if err := app.Save(record); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +67,6 @@ func init() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// update field
|
|
||||||
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"id": "hwy7m03o",
|
"id": "hwy7m03o",
|
||||||
@ -136,6 +140,8 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update collection `acme_accounts`
|
// update collection `acme_accounts`
|
||||||
@ -163,9 +169,12 @@ func init() {
|
|||||||
if err := app.Save(record); err != nil {
|
if err := app.Save(record); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,84 +7,96 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
tracer := NewTracer("(v0.3)1744192800")
|
||||||
if err != nil {
|
tracer.Printf("go ...")
|
||||||
return err
|
|
||||||
|
// update collection `access`
|
||||||
|
{
|
||||||
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "hwy7m03o",
|
||||||
|
"maxSelect": 1,
|
||||||
|
"name": "provider",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "select",
|
||||||
|
"values": [
|
||||||
|
"1panel",
|
||||||
|
"acmehttpreq",
|
||||||
|
"akamai",
|
||||||
|
"aliyun",
|
||||||
|
"aws",
|
||||||
|
"azure",
|
||||||
|
"baiducloud",
|
||||||
|
"baishan",
|
||||||
|
"baotapanel",
|
||||||
|
"byteplus",
|
||||||
|
"buypass",
|
||||||
|
"cachefly",
|
||||||
|
"cdnfly",
|
||||||
|
"cloudflare",
|
||||||
|
"cloudns",
|
||||||
|
"cmcccloud",
|
||||||
|
"ctcccloud",
|
||||||
|
"cucccloud",
|
||||||
|
"desec",
|
||||||
|
"dnsla",
|
||||||
|
"dogecloud",
|
||||||
|
"dynv6",
|
||||||
|
"edgio",
|
||||||
|
"fastly",
|
||||||
|
"gname",
|
||||||
|
"gcore",
|
||||||
|
"godaddy",
|
||||||
|
"goedge",
|
||||||
|
"googletrustservices",
|
||||||
|
"huaweicloud",
|
||||||
|
"jdcloud",
|
||||||
|
"k8s",
|
||||||
|
"letsencrypt",
|
||||||
|
"letsencryptstaging",
|
||||||
|
"local",
|
||||||
|
"namecheap",
|
||||||
|
"namedotcom",
|
||||||
|
"namesilo",
|
||||||
|
"ns1",
|
||||||
|
"porkbun",
|
||||||
|
"powerdns",
|
||||||
|
"qiniu",
|
||||||
|
"qingcloud",
|
||||||
|
"rainyun",
|
||||||
|
"safeline",
|
||||||
|
"ssh",
|
||||||
|
"sslcom",
|
||||||
|
"tencentcloud",
|
||||||
|
"ucloud",
|
||||||
|
"upyun",
|
||||||
|
"vercel",
|
||||||
|
"volcengine",
|
||||||
|
"wangsu",
|
||||||
|
"webhook",
|
||||||
|
"westcn",
|
||||||
|
"zerossl"
|
||||||
|
]
|
||||||
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := app.Save(collection); err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update field
|
tracer.Printf("done")
|
||||||
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
return nil
|
||||||
"hidden": false,
|
|
||||||
"id": "hwy7m03o",
|
|
||||||
"maxSelect": 1,
|
|
||||||
"name": "provider",
|
|
||||||
"presentable": false,
|
|
||||||
"required": false,
|
|
||||||
"system": false,
|
|
||||||
"type": "select",
|
|
||||||
"values": [
|
|
||||||
"1panel",
|
|
||||||
"acmehttpreq",
|
|
||||||
"akamai",
|
|
||||||
"aliyun",
|
|
||||||
"aws",
|
|
||||||
"azure",
|
|
||||||
"baiducloud",
|
|
||||||
"baishan",
|
|
||||||
"baotapanel",
|
|
||||||
"byteplus",
|
|
||||||
"buypass",
|
|
||||||
"cachefly",
|
|
||||||
"cdnfly",
|
|
||||||
"cloudflare",
|
|
||||||
"cloudns",
|
|
||||||
"cmcccloud",
|
|
||||||
"ctcccloud",
|
|
||||||
"cucccloud",
|
|
||||||
"desec",
|
|
||||||
"dnsla",
|
|
||||||
"dogecloud",
|
|
||||||
"dynv6",
|
|
||||||
"edgio",
|
|
||||||
"fastly",
|
|
||||||
"gname",
|
|
||||||
"gcore",
|
|
||||||
"godaddy",
|
|
||||||
"goedge",
|
|
||||||
"googletrustservices",
|
|
||||||
"huaweicloud",
|
|
||||||
"jdcloud",
|
|
||||||
"k8s",
|
|
||||||
"letsencrypt",
|
|
||||||
"letsencryptstaging",
|
|
||||||
"local",
|
|
||||||
"namecheap",
|
|
||||||
"namedotcom",
|
|
||||||
"namesilo",
|
|
||||||
"ns1",
|
|
||||||
"porkbun",
|
|
||||||
"powerdns",
|
|
||||||
"qiniu",
|
|
||||||
"qingcloud",
|
|
||||||
"rainyun",
|
|
||||||
"safeline",
|
|
||||||
"ssh",
|
|
||||||
"sslcom",
|
|
||||||
"tencentcloud",
|
|
||||||
"ucloud",
|
|
||||||
"upyun",
|
|
||||||
"vercel",
|
|
||||||
"volcengine",
|
|
||||||
"wangsu",
|
|
||||||
"webhook",
|
|
||||||
"westcn",
|
|
||||||
"zerossl"
|
|
||||||
]
|
|
||||||
}`)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return app.Save(collection)
|
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
@ -7,85 +7,97 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
tracer := NewTracer("(v0.3)1744459000")
|
||||||
if err != nil {
|
tracer.Printf("go ...")
|
||||||
return err
|
|
||||||
|
// update collection `access`
|
||||||
|
{
|
||||||
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "hwy7m03o",
|
||||||
|
"maxSelect": 1,
|
||||||
|
"name": "provider",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "select",
|
||||||
|
"values": [
|
||||||
|
"1panel",
|
||||||
|
"acmehttpreq",
|
||||||
|
"akamai",
|
||||||
|
"aliyun",
|
||||||
|
"aws",
|
||||||
|
"azure",
|
||||||
|
"baiducloud",
|
||||||
|
"baishan",
|
||||||
|
"baotapanel",
|
||||||
|
"bunny",
|
||||||
|
"byteplus",
|
||||||
|
"buypass",
|
||||||
|
"cachefly",
|
||||||
|
"cdnfly",
|
||||||
|
"cloudflare",
|
||||||
|
"cloudns",
|
||||||
|
"cmcccloud",
|
||||||
|
"ctcccloud",
|
||||||
|
"cucccloud",
|
||||||
|
"desec",
|
||||||
|
"dnsla",
|
||||||
|
"dogecloud",
|
||||||
|
"dynv6",
|
||||||
|
"edgio",
|
||||||
|
"fastly",
|
||||||
|
"gname",
|
||||||
|
"gcore",
|
||||||
|
"godaddy",
|
||||||
|
"goedge",
|
||||||
|
"googletrustservices",
|
||||||
|
"huaweicloud",
|
||||||
|
"jdcloud",
|
||||||
|
"k8s",
|
||||||
|
"letsencrypt",
|
||||||
|
"letsencryptstaging",
|
||||||
|
"local",
|
||||||
|
"namecheap",
|
||||||
|
"namedotcom",
|
||||||
|
"namesilo",
|
||||||
|
"ns1",
|
||||||
|
"porkbun",
|
||||||
|
"powerdns",
|
||||||
|
"qiniu",
|
||||||
|
"qingcloud",
|
||||||
|
"rainyun",
|
||||||
|
"safeline",
|
||||||
|
"ssh",
|
||||||
|
"sslcom",
|
||||||
|
"tencentcloud",
|
||||||
|
"ucloud",
|
||||||
|
"upyun",
|
||||||
|
"vercel",
|
||||||
|
"volcengine",
|
||||||
|
"wangsu",
|
||||||
|
"webhook",
|
||||||
|
"westcn",
|
||||||
|
"zerossl"
|
||||||
|
]
|
||||||
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := app.Save(collection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update field
|
tracer.Printf("done")
|
||||||
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
return nil
|
||||||
"hidden": false,
|
|
||||||
"id": "hwy7m03o",
|
|
||||||
"maxSelect": 1,
|
|
||||||
"name": "provider",
|
|
||||||
"presentable": false,
|
|
||||||
"required": false,
|
|
||||||
"system": false,
|
|
||||||
"type": "select",
|
|
||||||
"values": [
|
|
||||||
"1panel",
|
|
||||||
"acmehttpreq",
|
|
||||||
"akamai",
|
|
||||||
"aliyun",
|
|
||||||
"aws",
|
|
||||||
"azure",
|
|
||||||
"baiducloud",
|
|
||||||
"baishan",
|
|
||||||
"baotapanel",
|
|
||||||
"bunny",
|
|
||||||
"byteplus",
|
|
||||||
"buypass",
|
|
||||||
"cachefly",
|
|
||||||
"cdnfly",
|
|
||||||
"cloudflare",
|
|
||||||
"cloudns",
|
|
||||||
"cmcccloud",
|
|
||||||
"ctcccloud",
|
|
||||||
"cucccloud",
|
|
||||||
"desec",
|
|
||||||
"dnsla",
|
|
||||||
"dogecloud",
|
|
||||||
"dynv6",
|
|
||||||
"edgio",
|
|
||||||
"fastly",
|
|
||||||
"gname",
|
|
||||||
"gcore",
|
|
||||||
"godaddy",
|
|
||||||
"goedge",
|
|
||||||
"googletrustservices",
|
|
||||||
"huaweicloud",
|
|
||||||
"jdcloud",
|
|
||||||
"k8s",
|
|
||||||
"letsencrypt",
|
|
||||||
"letsencryptstaging",
|
|
||||||
"local",
|
|
||||||
"namecheap",
|
|
||||||
"namedotcom",
|
|
||||||
"namesilo",
|
|
||||||
"ns1",
|
|
||||||
"porkbun",
|
|
||||||
"powerdns",
|
|
||||||
"qiniu",
|
|
||||||
"qingcloud",
|
|
||||||
"rainyun",
|
|
||||||
"safeline",
|
|
||||||
"ssh",
|
|
||||||
"sslcom",
|
|
||||||
"tencentcloud",
|
|
||||||
"ucloud",
|
|
||||||
"upyun",
|
|
||||||
"vercel",
|
|
||||||
"volcengine",
|
|
||||||
"wangsu",
|
|
||||||
"webhook",
|
|
||||||
"westcn",
|
|
||||||
"zerossl"
|
|
||||||
]
|
|
||||||
}`)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return app.Save(collection)
|
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
@ -9,84 +9,93 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
tracer := NewTracer("(v0.3)1745308800")
|
||||||
if err != nil {
|
tracer.Printf("go ...")
|
||||||
return err
|
|
||||||
}
|
// update collection `access`
|
||||||
|
{
|
||||||
// add temp field `providerTmp`
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{
|
if err != nil {
|
||||||
"autogeneratePattern": "",
|
return err
|
||||||
"hidden": false,
|
}
|
||||||
"id": "text2024822322",
|
|
||||||
"max": 0,
|
// add temp field `providerTmp`
|
||||||
"min": 0,
|
if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{
|
||||||
"name": "providerTmp",
|
"autogeneratePattern": "",
|
||||||
"pattern": "",
|
"hidden": false,
|
||||||
"presentable": false,
|
"id": "text2024822322",
|
||||||
"primaryKey": false,
|
"max": 0,
|
||||||
"required": false,
|
"min": 0,
|
||||||
"system": false,
|
"name": "providerTmp",
|
||||||
"type": "text"
|
"pattern": "",
|
||||||
}`)); err != nil {
|
"presentable": false,
|
||||||
return err
|
"primaryKey": false,
|
||||||
}
|
"required": false,
|
||||||
if err := app.Save(collection); err != nil {
|
"system": false,
|
||||||
return err
|
"type": "text"
|
||||||
}
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
// copy `provider` to `providerTmp`
|
}
|
||||||
if _, err := app.DB().NewQuery("UPDATE access SET providerTmp = provider").Execute(); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove old field `provider`
|
// copy `provider` to `providerTmp`
|
||||||
collection.Fields.RemoveById("hwy7m03o")
|
if _, err := app.DB().NewQuery("UPDATE access SET providerTmp = provider").Execute(); err != nil {
|
||||||
if err := json.Unmarshal([]byte(`{
|
return err
|
||||||
"indexes": [
|
}
|
||||||
"CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)"
|
|
||||||
]
|
// remove old field `provider`
|
||||||
}`), &collection); err != nil {
|
collection.Fields.RemoveById("hwy7m03o")
|
||||||
return err
|
if err := json.Unmarshal([]byte(`{
|
||||||
}
|
"indexes": [
|
||||||
if err := app.Save(collection); err != nil {
|
"CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)"
|
||||||
return err
|
]
|
||||||
}
|
}`), &collection); err != nil {
|
||||||
|
return err
|
||||||
// rename field `providerTmp` to `provider`
|
}
|
||||||
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
if err := app.Save(collection); err != nil {
|
||||||
"autogeneratePattern": "",
|
return err
|
||||||
"hidden": false,
|
}
|
||||||
"id": "text2024822322",
|
|
||||||
"max": 0,
|
// rename field `providerTmp` to `provider`
|
||||||
"min": 0,
|
if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
|
||||||
"name": "provider",
|
"autogeneratePattern": "",
|
||||||
"pattern": "",
|
"hidden": false,
|
||||||
"presentable": false,
|
"id": "text2024822322",
|
||||||
"primaryKey": false,
|
"max": 0,
|
||||||
"required": false,
|
"min": 0,
|
||||||
"system": false,
|
"name": "provider",
|
||||||
"type": "text"
|
"pattern": "",
|
||||||
}`)); err != nil {
|
"presentable": false,
|
||||||
return err
|
"primaryKey": false,
|
||||||
}
|
"required": false,
|
||||||
if err := app.Save(collection); err != nil {
|
"system": false,
|
||||||
return err
|
"type": "text"
|
||||||
}
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
// rebuild indexes
|
}
|
||||||
if err := json.Unmarshal([]byte(`{
|
if err := app.Save(collection); err != nil {
|
||||||
"indexes": [
|
return err
|
||||||
"CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)",
|
}
|
||||||
"CREATE INDEX `+"`"+`idx_frh0JT1Aqx`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`provider`+"`"+`)"
|
|
||||||
]
|
// rebuild indexes
|
||||||
}`), &collection); err != nil {
|
if err := json.Unmarshal([]byte(`{
|
||||||
return err
|
"indexes": [
|
||||||
}
|
"CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)",
|
||||||
if err := app.Save(collection); err != nil {
|
"CREATE INDEX `+"`"+`idx_frh0JT1Aqx`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`provider`+"`"+`)"
|
||||||
return err
|
]
|
||||||
|
}`), &collection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := app.Save(collection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,6 +7,9 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1745726400")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// update collection `access`
|
// update collection `access`
|
||||||
{
|
{
|
||||||
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
@ -34,53 +37,62 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// migrate data
|
// migrate data
|
||||||
{
|
{
|
||||||
accesses, err := app.FindAllRecords("access")
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, access := range accesses {
|
records, err := app.FindAllRecords(collection)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, record := range records {
|
||||||
changed := false
|
changed := false
|
||||||
|
|
||||||
if access.GetString("provider") == "buypass" {
|
if record.GetString("provider") == "buypass" {
|
||||||
access.Set("reserve", "ca")
|
record.Set("reserve", "ca")
|
||||||
changed = true
|
changed = true
|
||||||
} else if access.GetString("provider") == "googletrustservices" {
|
} else if record.GetString("provider") == "googletrustservices" {
|
||||||
access.Set("reserve", "ca")
|
record.Set("reserve", "ca")
|
||||||
changed = true
|
changed = true
|
||||||
} else if access.GetString("provider") == "sslcom" {
|
} else if record.GetString("provider") == "sslcom" {
|
||||||
access.Set("reserve", "ca")
|
record.Set("reserve", "ca")
|
||||||
changed = true
|
changed = true
|
||||||
} else if access.GetString("provider") == "zerossl" {
|
} else if record.GetString("provider") == "zerossl" {
|
||||||
access.Set("reserve", "ca")
|
record.Set("reserve", "ca")
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if access.GetString("provider") == "webhook" {
|
if record.GetString("provider") == "webhook" {
|
||||||
config := make(map[string]any)
|
config := make(map[string]any)
|
||||||
if err := access.UnmarshalJSONField("config", &config); err != nil {
|
if err := record.UnmarshalJSONField("config", &config); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config["method"] = "POST"
|
config["method"] = "POST"
|
||||||
config["headers"] = "Content-Type: application/json"
|
config["headers"] = "Content-Type: application/json"
|
||||||
access.Set("config", config)
|
record.Set("config", config)
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if changed {
|
if changed {
|
||||||
err = app.Save(access)
|
if err := app.Save(record); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,36 +7,46 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1747314000")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// migrate data
|
// migrate data
|
||||||
{
|
{
|
||||||
accesses, err := app.FindAllRecords("access")
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, access := range accesses {
|
records, err := app.FindAllRecords(collection)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, record := range records {
|
||||||
changed := false
|
changed := false
|
||||||
|
|
||||||
if access.GetString("provider") == "goedge" {
|
if record.GetString("provider") == "goedge" {
|
||||||
config := make(map[string]any)
|
config := make(map[string]any)
|
||||||
if err := access.UnmarshalJSONField("config", &config); err != nil {
|
if err := record.UnmarshalJSONField("config", &config); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config["apiRole"] = "user"
|
config["apiRole"] = "user"
|
||||||
access.Set("config", config)
|
record.Set("config", config)
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if changed {
|
if changed {
|
||||||
err = app.Save(access)
|
if err := app.Save(record); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,6 +7,9 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1747389600")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// update collection `certificate`
|
// update collection `certificate`
|
||||||
{
|
{
|
||||||
collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np")
|
collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np")
|
||||||
@ -34,38 +37,47 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// migrate data
|
// migrate data
|
||||||
{
|
{
|
||||||
accesses, err := app.FindAllRecords("access")
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, access := range accesses {
|
records, err := app.FindAllRecords(collection)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, record := range records {
|
||||||
changed := false
|
changed := false
|
||||||
|
|
||||||
if access.GetString("provider") == "1panel" {
|
if record.GetString("provider") == "1panel" {
|
||||||
config := make(map[string]any)
|
config := make(map[string]any)
|
||||||
if err := access.UnmarshalJSONField("config", &config); err != nil {
|
if err := record.UnmarshalJSONField("config", &config); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config["apiVersion"] = "v1"
|
config["apiVersion"] = "v1"
|
||||||
access.Set("config", config)
|
record.Set("config", config)
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if changed {
|
if changed {
|
||||||
err = app.Save(access)
|
if err := app.Save(record); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -9,9 +9,17 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1748178000")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// migrate data
|
// migrate data
|
||||||
{
|
{
|
||||||
accesses, err := app.FindAllRecords("access")
|
collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
records, err := app.FindAllRecords(collection)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -29,30 +37,34 @@ func init() {
|
|||||||
"ratpanel",
|
"ratpanel",
|
||||||
"safeline",
|
"safeline",
|
||||||
}
|
}
|
||||||
for _, access := range accesses {
|
for _, record := range records {
|
||||||
changed := false
|
changed := false
|
||||||
|
|
||||||
if slices.Contains(providersToUpdate, access.GetString("provider")) {
|
if slices.Contains(providersToUpdate, record.GetString("provider")) {
|
||||||
config := make(map[string]any)
|
config := make(map[string]any)
|
||||||
if err := access.UnmarshalJSONField("config", &config); err != nil {
|
if err := record.UnmarshalJSONField("config", &config); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config["serverUrl"] = config["apiUrl"]
|
if config["apiUrl"] != nil {
|
||||||
delete(config, "apiUrl")
|
config["serverUrl"] = config["apiUrl"]
|
||||||
access.Set("config", config)
|
delete(config, "apiUrl")
|
||||||
changed = true
|
record.Set("config", config)
|
||||||
|
changed = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if changed {
|
if changed {
|
||||||
err = app.Save(access)
|
if err := app.Save(record); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("record #%s in collection '%s' updated", record.Id, collection.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
@ -7,6 +7,9 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
m.Register(func(app core.App) error {
|
m.Register(func(app core.App) error {
|
||||||
|
tracer := NewTracer("(v0.3)1748228400")
|
||||||
|
tracer.Printf("go ...")
|
||||||
|
|
||||||
// update collection `certificate`
|
// update collection `certificate`
|
||||||
{
|
{
|
||||||
collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np")
|
collection, err := app.FindCollectionByNameOrId("4szxr9x43tpj6np")
|
||||||
@ -30,8 +33,11 @@ func init() {
|
|||||||
if err := app.Save(collection); err != nil {
|
if err := app.Save(collection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("collection '%s' updated", collection.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracer.Printf("done")
|
||||||
return nil
|
return nil
|
||||||
}, func(app core.App) error {
|
}, func(app core.App) error {
|
||||||
return nil
|
return nil
|
||||||
|
22
migrations/tracer.go
Normal file
22
migrations/tracer.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package migrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Tracer struct {
|
||||||
|
logger *slog.Logger
|
||||||
|
flag string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTracer(flag string) *Tracer {
|
||||||
|
return &Tracer{
|
||||||
|
logger: slog.Default(),
|
||||||
|
flag: flag,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *Tracer) Printf(format string, args ...any) {
|
||||||
|
l.logger.Info("[CERTIMATE] migration " + l.flag + ": " + fmt.Sprintf(format, args...))
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user