Files
sm-seo-plugin/updates/202610270003_create_golem15_seo_settings.go

64 lines
2.0 KiB
Go

package updates
import (
"github.com/go-gormigrate/gormigrate/v2"
"gorm.io/gorm"
)
// createSettings creates the settings singleton golem15_seo_settings (row
// id 1) with the default templates, address options and the seeded D-07
// query-parameter list. The robots.txt columns are added by a later
// migration.
var createSettings = []*gormigrate.Migration{
{
ID: "202610270003_create_golem15_seo_settings",
Migrate: func(tx *gorm.DB) error {
for _, stmt := range []string{
`CREATE TABLE golem15_seo_settings (
id INTEGER PRIMARY KEY,
site_name TEXT NOT NULL DEFAULT '',
twitter_site TEXT NOT NULL DEFAULT '',
title_template TEXT NOT NULL DEFAULT '%title% | %site%',
home_template TEXT NOT NULL DEFAULT '%site%',
default_description TEXT NOT NULL DEFAULT '',
default_og_image TEXT NOT NULL DEFAULT '',
query_params jsonb NULL,
noindex_paths TEXT NOT NULL DEFAULT '',
search_paths TEXT NOT NULL DEFAULT '',
url_host TEXT NOT NULL DEFAULT 'keep',
url_slash TEXT NOT NULL DEFAULT 'keep',
url_lowercase BOOLEAN NOT NULL DEFAULT FALSE,
verify_google TEXT NOT NULL DEFAULT '',
verify_bing TEXT NOT NULL DEFAULT '',
verify_yandex TEXT NOT NULL DEFAULT '',
verify_other jsonb NULL,
verify_files jsonb NULL,
csv_delimiter TEXT NOT NULL DEFAULT '',
created_at TIMESTAMP(0) NULL,
updated_at TIMESTAMP(0) NULL
)`,
`INSERT INTO golem15_seo_settings (id, query_params, created_at, updated_at) VALUES (1, '[
{"name": "page", "kind": "content", "path": ""},
{"name": "utm_*", "kind": "tracking", "path": ""},
{"name": "fbclid", "kind": "tracking", "path": ""},
{"name": "gclid", "kind": "tracking", "path": ""},
{"name": "msclkid", "kind": "tracking", "path": ""},
{"name": "sort", "kind": "filter", "path": ""}
]'::jsonb, NOW(), NOW())`,
} {
if err := tx.Exec(stmt).Error; err != nil {
return err
}
}
return nil
},
Rollback: func(tx *gorm.DB) error {
return tx.Exec(`DROP TABLE IF EXISTS golem15_seo_settings`).Error
},
},
}
func init() {
Register(createSettings...)
}