fix(migrations): keep auth identity and payment upgrades safe
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name = 'auth_identity_migration_reports'
|
||||
AND column_name = 'report_type'
|
||||
AND COALESCE(character_maximum_length, 0) < 80
|
||||
) THEN
|
||||
ALTER TABLE auth_identity_migration_reports
|
||||
ALTER COLUMN report_type TYPE VARCHAR(80);
|
||||
END IF;
|
||||
END $$;
|
||||
@@ -0,0 +1,22 @@
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_indexes
|
||||
WHERE schemaname = 'public'
|
||||
AND tablename = 'payment_orders'
|
||||
AND indexname = 'paymentorder_out_trade_no_unique'
|
||||
) THEN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_indexes
|
||||
WHERE schemaname = 'public'
|
||||
AND tablename = 'payment_orders'
|
||||
AND indexname = 'paymentorder_out_trade_no'
|
||||
) THEN
|
||||
EXECUTE 'DROP INDEX IF EXISTS paymentorder_out_trade_no';
|
||||
END IF;
|
||||
|
||||
EXECUTE 'ALTER INDEX paymentorder_out_trade_no_unique RENAME TO paymentorder_out_trade_no';
|
||||
END IF;
|
||||
END $$;
|
||||
@@ -26,7 +26,14 @@ func TestMigration118DoesNotForceOverwriteAuthSourceGrantDefaults(t *testing.T)
|
||||
require.True(t, strings.Contains(sql, "ON CONFLICT (key) DO NOTHING"))
|
||||
}
|
||||
|
||||
func TestMigration109KeepsPublishedBackfillBodyAndDefersReportTypeWidening(t *testing.T) {
|
||||
func TestAuthIdentityReportTypeWideningRunsBeforeLongReportWritersAndStillReconcilesAt121(t *testing.T) {
|
||||
preflightContent, err := FS.ReadFile("108a_widen_auth_identity_migration_report_type.sql")
|
||||
require.NoError(t, err)
|
||||
|
||||
preflightSQL := string(preflightContent)
|
||||
require.Contains(t, preflightSQL, "ALTER TABLE auth_identity_migration_reports")
|
||||
require.Contains(t, preflightSQL, "ALTER COLUMN report_type TYPE VARCHAR(80)")
|
||||
|
||||
content, err := FS.ReadFile("109_auth_identity_compat_backfill.sql")
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -58,6 +65,13 @@ func TestMigration119DefersPaymentIndexRolloutToOnlineFollowup(t *testing.T) {
|
||||
require.Contains(t, followupSQL, "CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS paymentorder_out_trade_no_unique")
|
||||
require.Contains(t, followupSQL, "DROP INDEX CONCURRENTLY IF EXISTS paymentorder_out_trade_no")
|
||||
require.Contains(t, followupSQL, "WHERE out_trade_no <> ''")
|
||||
|
||||
alignmentContent, err := FS.ReadFile("120a_align_payment_orders_out_trade_no_index_name.sql")
|
||||
require.NoError(t, err)
|
||||
|
||||
alignmentSQL := string(alignmentContent)
|
||||
require.Contains(t, alignmentSQL, "paymentorder_out_trade_no_unique")
|
||||
require.Contains(t, alignmentSQL, "RENAME TO paymentorder_out_trade_no")
|
||||
}
|
||||
|
||||
func TestMigration122ScrubsPendingOAuthCompletionTokensAtRest(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user