Make project defaults reusable

This commit is contained in:
Your Name
2026-08-03 15:50:45 +05:00
parent 2358e9d660
commit 6ae61b0302
11 changed files with 116 additions and 29 deletions
@@ -0,0 +1,36 @@
INSERT INTO app_settings(key, value_json, value_type, title, description, category)
VALUES
('site_poster_provider', '""'::jsonb, 'str', 'Site provider', 'Publish adapter: ghost now; wordpress can be added as a code adapter later.', 'Site Poster'),
('site_poster_base_url', '""'::jsonb, 'str', 'Site API base URL', 'Public/admin base URL for the selected site provider.', 'Site Poster'),
('site_poster_secret_file', '""'::jsonb, 'str', 'Site secret file', 'Server path to the selected provider API secret. Keep empty in git.', 'Site Poster'),
('site_poster_fallback_title', '"Новость"'::jsonb, 'str', 'Fallback article title', 'Title used when post text has no first line.', 'Site Poster')
ON CONFLICT (key) DO NOTHING;
UPDATE app_settings
SET value_json='"ghost"'::jsonb,
updated_at=NOW()
WHERE key='site_poster_provider'
AND COALESCE(value_json #>> '{}', '') = ''
AND EXISTS (
SELECT 1 FROM app_settings legacy
WHERE legacy.key='site_poster_ghost_url'
AND COALESCE(legacy.value_json #>> '{}', '') <> ''
);
UPDATE app_settings target
SET value_json=to_jsonb(legacy.value_json #>> '{}'),
updated_at=NOW()
FROM app_settings legacy
WHERE target.key='site_poster_base_url'
AND legacy.key='site_poster_ghost_url'
AND COALESCE(target.value_json #>> '{}', '') = ''
AND COALESCE(legacy.value_json #>> '{}', '') <> '';
UPDATE app_settings target
SET value_json=to_jsonb(legacy.value_json #>> '{}'),
updated_at=NOW()
FROM app_settings legacy
WHERE target.key='site_poster_secret_file'
AND legacy.key='site_poster_key_file'
AND COALESCE(target.value_json #>> '{}', '') = ''
AND COALESCE(legacy.value_json #>> '{}', '') <> '';