2022-08-18 14:27:45 +02:00
|
|
|
package logs
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/pocketbase/dbx"
|
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
LogsMigrations.Register(func(db dbx.Builder) error {
|
2022-08-21 13:47:33 +02:00
|
|
|
// delete old index (don't check for error because of backward compatibility with old installations)
|
2022-08-18 14:27:45 +02:00
|
|
|
db.DropIndex("_requests", "_request_ip_idx").Execute()
|
|
|
|
|
|
|
|
// rename ip -> remoteIp
|
|
|
|
if _, err := db.RenameColumn("_requests", "ip", "remoteIp").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// add new userIp column
|
|
|
|
if _, err := db.AddColumn("_requests", "userIp", `TEXT DEFAULT "127.0.0.1" NOT NULL`).Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// add new indexes
|
|
|
|
if _, err := db.CreateIndex("_requests", "_request_remote_ip_idx", "remoteIp").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if _, err := db.CreateIndex("_requests", "_request_user_ip_idx", "userIp").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}, func(db dbx.Builder) error {
|
|
|
|
// delete new indexes
|
|
|
|
if _, err := db.DropIndex("_requests", "_request_remote_ip_idx").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if _, err := db.DropIndex("_requests", "_request_user_ip_idx").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// drop userIp column
|
|
|
|
if _, err := db.DropColumn("_requests", "userIp").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// restore original remoteIp column name
|
|
|
|
if _, err := db.RenameColumn("_requests", "remoteIp", "ip").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// restore original index
|
|
|
|
if _, err := db.CreateIndex("_requests", "_request_ip_idx", "ip").Execute(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
}
|