mirror of https://github.com/usual2970/certimate
				
				
				
			
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
package migrations
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/json"
 | 
						|
 | 
						|
	"github.com/pocketbase/pocketbase/core"
 | 
						|
	m "github.com/pocketbase/pocketbase/migrations"
 | 
						|
)
 | 
						|
 | 
						|
func init() {
 | 
						|
	m.Register(func(app core.App) error {
 | 
						|
		collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
 | 
						|
		if err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
 | 
						|
		// add temp field `providerTmp`
 | 
						|
		if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{
 | 
						|
			"autogeneratePattern": "",
 | 
						|
			"hidden": false,
 | 
						|
			"id": "text2024822322",
 | 
						|
			"max": 0,
 | 
						|
			"min": 0,
 | 
						|
			"name": "providerTmp",
 | 
						|
			"pattern": "",
 | 
						|
			"presentable": false,
 | 
						|
			"primaryKey": false,
 | 
						|
			"required": false,
 | 
						|
			"system": false,
 | 
						|
			"type": "text"
 | 
						|
		}`)); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		if err := app.Save(collection); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
 | 
						|
		// copy `provider` to `providerTmp`
 | 
						|
		if _, err := app.DB().NewQuery("UPDATE access SET providerTmp = provider").Execute(); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
 | 
						|
		// remove old field `provider`
 | 
						|
		collection.Fields.RemoveById("hwy7m03o")
 | 
						|
		if err := json.Unmarshal([]byte(`{
 | 
						|
			"indexes": [
 | 
						|
				"CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)"
 | 
						|
			]
 | 
						|
		}`), &collection); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		if err := app.Save(collection); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
 | 
						|
		// rename field `providerTmp` to `provider`
 | 
						|
		if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
 | 
						|
			"autogeneratePattern": "",
 | 
						|
			"hidden": false,
 | 
						|
			"id": "text2024822322",
 | 
						|
			"max": 0,
 | 
						|
			"min": 0,
 | 
						|
			"name": "provider",
 | 
						|
			"pattern": "",
 | 
						|
			"presentable": false,
 | 
						|
			"primaryKey": false,
 | 
						|
			"required": false,
 | 
						|
			"system": false,
 | 
						|
			"type": "text"
 | 
						|
		}`)); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		if err := app.Save(collection); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
 | 
						|
		// rebuild indexes
 | 
						|
		if err := json.Unmarshal([]byte(`{
 | 
						|
			"indexes": [
 | 
						|
				"CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)",
 | 
						|
				"CREATE INDEX `+"`"+`idx_frh0JT1Aqx`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`provider`+"`"+`)"
 | 
						|
			]
 | 
						|
		}`), &collection); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		if err := app.Save(collection); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
 | 
						|
		return nil
 | 
						|
	}, func(app core.App) error {
 | 
						|
		return nil
 | 
						|
	})
 | 
						|
}
 |