Repro
- Run
DataProviderMigrate migrate --schema migrations/schema.yaml --provider postgres --allow-destructive --output <DSN> --allow-destructive against a fresh Postgres (supabase/postgres:15.8.1.060) with NAP's migrations/schema.yaml.
- Migration applies successfully ("Migration completed successfully").
- Then
SCHEMA INTEGRITY CHECK FAILED with:
public.tenant_credit_event.note: default expected '' but found ''::text
public.api_keys.label: default expected '' but found ''::text
public.agent_configs.system_prompt: default expected '' but found ''::text
public.agent_configs.agent_type: default expected 'disembodied' but found 'disembodied'::text
public.agent_configs.base_agent: default expected 'pydantic-ai' but found 'pydantic-ai'::text
public.agent_logs.level: default expected 'info' but found 'info'::text
public.tool_calls.status: default expected 'pending' but found 'pending'::text
grant Schema public: missing grant
grant AllTablesInSchema public: missing grant
Analysis
Two distinct regressions vs 0.9.10-beta:
-
Text default cast normalization. Postgres echoes 'pending' as 'pending'::text in pg_attrdef / information_schema.columns.column_default. The integrity check is comparing the raw YAML literal ('pending') against Postgres's echoed form ('pending'::text) without normalizing the implicit cast. Either side should be normalized before the equality check.
-
Schema / AllTablesInSchema grants false negative. schema.yaml declares:
grants:
- schema: public
target: Schema
privileges: [USAGE]
roles: [app_user, app_admin]
- schema: public
target: AllTablesInSchema
privileges: [SELECT, INSERT, UPDATE, DELETE]
roles: [app_user, app_admin]
These grants ARE applied to the DB (verified via \dn+ and \dp), but the integrity check reports them missing. The probe likely doesn't pick up AllTablesInSchema grants when they were applied via per-table GRANTs, or doesn't pick up the schema-level USAGE grant.
Impact
NAP CI is blocked. Pinning back to 0.9.10-beta (which has no integrity check on these dimensions) until this is resolved.
Environment
- DP version: 0.9.11-beta
- Postgres: supabase/postgres:15.8.1.060
Repro
DataProviderMigrate migrate --schema migrations/schema.yaml --provider postgres --allow-destructive --output <DSN> --allow-destructiveagainst a fresh Postgres (supabase/postgres:15.8.1.060) with NAP'smigrations/schema.yaml.SCHEMA INTEGRITY CHECK FAILEDwith:Analysis
Two distinct regressions vs 0.9.10-beta:
Text default cast normalization. Postgres echoes
'pending'as'pending'::textinpg_attrdef/information_schema.columns.column_default. The integrity check is comparing the raw YAML literal ('pending') against Postgres's echoed form ('pending'::text) without normalizing the implicit cast. Either side should be normalized before the equality check.Schema/AllTablesInSchemagrants false negative. schema.yaml declares:These grants ARE applied to the DB (verified via
\dn+and\dp), but the integrity check reports them missing. The probe likely doesn't pick upAllTablesInSchemagrants when they were applied via per-table GRANTs, or doesn't pick up the schema-level USAGE grant.Impact
NAP CI is blocked. Pinning back to 0.9.10-beta (which has no integrity check on these dimensions) until this is resolved.
Environment