35
internal/handlers/category_i18n.go
Normal file
35
internal/handlers/category_i18n.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
)
|
||||
|
||||
// EnsureCategoryI18nColumns adds per-locale category name/description columns.
|
||||
func EnsureCategoryI18nColumns(ctx context.Context, pool *pgxpool.Pool) error {
|
||||
_, err := pool.Exec(ctx, `
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_zh TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_en TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_ja TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_ko TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_vi TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_id TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS name_ms TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_zh TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_en TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_ja TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_ko TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_vi TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_id TEXT;
|
||||
ALTER TABLE categories ADD COLUMN IF NOT EXISTS description_ms TEXT`)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = pool.Exec(ctx, `
|
||||
UPDATE categories SET name_zh = COALESCE(NULLIF(name_zh, ''), NULLIF(name_zh_cn, ''), name_zh_tw)
|
||||
WHERE COALESCE(name_zh, '') = '';
|
||||
UPDATE categories SET description_zh = COALESCE(description_zh, description_zh_tw)
|
||||
WHERE description_zh IS NULL`)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user