33 lines
1.3 KiB
SQL
33 lines
1.3 KiB
SQL
-- Migration: convert numeric version columns to text to support semantic versions
|
|
-- This is idempotent: it only alters columns if they are not already text.
|
|
|
|
DO $$
|
|
BEGIN
|
|
-- Alter version_code to text if needed
|
|
IF EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public' AND table_name = 'app_versions' AND column_name = 'version_code' AND data_type <> 'text'
|
|
) THEN
|
|
ALTER TABLE public.app_versions
|
|
ALTER COLUMN version_code TYPE text USING version_code::text;
|
|
END IF;
|
|
|
|
-- Alter min_version_required to text if needed
|
|
IF EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public' AND table_name = 'app_versions' AND column_name = 'min_version_required' AND data_type <> 'text'
|
|
) THEN
|
|
ALTER TABLE public.app_versions
|
|
ALTER COLUMN min_version_required TYPE text USING min_version_required::text;
|
|
END IF;
|
|
|
|
-- Recreate unique index on version_code to ensure correct index type
|
|
DROP INDEX IF EXISTS app_versions_version_code_idx;
|
|
CREATE UNIQUE INDEX IF NOT EXISTS app_versions_version_code_idx ON public.app_versions (version_code);
|
|
END
|
|
$$;
|
|
|
|
-- Notes:
|
|
-- - Run this migration using the service_role key or from the Supabase SQL editor.
|
|
-- - After running, clients using string semantic versions (e.g., '0.1.1') will work.
|