Add a goose migration to create core and fedwiki schemas and move existing domain tables using ALTER TABLE IF EXISTS. Set connection search_path to "core, public" after successful DB ping. Update FedWiki SQL and sqlc.yaml to use fedwiki.sites and include db migrations for schema awareness. Add design docs, specs, and tasks for schema-namespacing and the migration plan.
42 lines
958 B
SQL
42 lines
958 B
SQL
-- name: CreateSite :one
|
|
INSERT INTO fedwiki.sites (workspace_id, domain, is_custom_domain)
|
|
VALUES ($1, $2, $3)
|
|
RETURNING *;
|
|
|
|
-- name: GetSiteByID :one
|
|
SELECT * FROM fedwiki.sites
|
|
WHERE site_id = $1;
|
|
|
|
-- name: GetSiteByDomain :one
|
|
SELECT * FROM fedwiki.sites
|
|
WHERE domain = $1;
|
|
|
|
-- name: ListSitesByWorkspace :many
|
|
SELECT * FROM fedwiki.sites
|
|
WHERE workspace_id = $1
|
|
ORDER BY domain ASC;
|
|
|
|
-- name: ListAllSites :many
|
|
SELECT * FROM fedwiki.sites
|
|
ORDER BY domain ASC;
|
|
|
|
-- name: DeleteSite :exec
|
|
DELETE FROM fedwiki.sites
|
|
WHERE site_id = $1;
|
|
|
|
-- name: DeleteSiteByDomain :exec
|
|
DELETE FROM fedwiki.sites
|
|
WHERE domain = $1;
|
|
|
|
-- name: CountSitesByWorkspace :one
|
|
SELECT COUNT(*) AS count FROM fedwiki.sites
|
|
WHERE workspace_id = $1;
|
|
|
|
-- name: UpsertSiteByDomain :one
|
|
INSERT INTO fedwiki.sites (workspace_id, domain, is_custom_domain)
|
|
VALUES ($1, $2, $3)
|
|
ON CONFLICT(domain) DO UPDATE SET
|
|
workspace_id = excluded.workspace_id,
|
|
updated_at = NOW()
|
|
RETURNING *;
|