packages/migrations.ts
Rama main · réplica de lectura del repositorio original.
export interface SchemaMigration {
readonly version: number;
readonly file: string;
}
const catalog = [
{ version: 1, file: "001_foundation.sql" },
{ version: 2, file: "002_upload_reconciliation.sql" },
{ version: 3, file: "003_html_static_and_reports.sql" },
{ version: 4, file: "004_email_identity.sql" },
{ version: 5, file: "005_local_live_viewer.sql" },
{ version: 6, file: "006_revision_manifest.sql" },
{ version: 7, file: "007_bundle_storage.sql" },
{ version: 8, file: "008_bundle_inline_derivatives.sql" },
{ version: 9, file: "009_agent_connections.sql" },
{ version: 10, file: "010_agent_upload_binding.sql" },
{ version: 11, file: "011_agent_audit_identity.sql" },
{ version: 12, file: "012_agent_share_operations.sql" },
{ version: 13, file: "013_artifact_trash.sql" },
{ version: 14, file: "014_agent_management.sql" },
{ version: 15, file: "015_editorial_publications.sql" },
{ version: 16, file: "016_account_deletion.sql" },
{ version: 17, file: "017_account_purge.sql" },
{ version: 18, file: "018_erasure_restore_suppression.sql" },
{ version: 19, file: "019_url_import_jobs.sql" },
{ version: 20, file: "020_purge_url_import_jobs.sql" },
{ version: 21, file: "021_agent_context_templates.sql" },
{ version: 22, file: "022_template_libraries.sql" },
{ version: 23, file: "023_purge_template_library_identities.sql" },
{ version: 24, file: "024_template_library_invitations.sql" },
{ version: 25, file: "025_template_library_viewer_grants.sql" },
{ version: 26, file: "026_template_library_events.sql" },
{ version: 27, file: "027_single_file_bundle_profile.sql" },
{ version: 28, file: "028_mcp_oauth.sql" },
{ version: 29, file: "029_abuse_protection.sql" },
{ version: 30, file: "030_comments.sql" },
{ version: 31, file: "031_content_filter.sql" },
{ version: 32, file: "032_account_identities.sql" },
{ version: 33, file: "033_enterprise_requests.sql" },
{ version: 34, file: "034_product_analytics.sql" },
{ version: 35, file: "035_recipient_cta_events.sql" },
{ version: 36, file: "036_shelf_access.sql" },
{ version: 37, file: "037_url_import_rendering.sql" },
{ version: 38, file: "038_agent_folder_operations.sql" },
{ version: 39, file: "039_google_sign_in.sql" },
{ version: 40, file: "040_revision_covers.sql" },
{ version: 41, file: "041_content_search.sql" },
{ version: 42, file: "042_team_shelves.sql" },
{ version: 43, file: "043_projects.sql" },
{ version: 44, file: "044_team_shelves_invariants.sql" },
{ version: 45, file: "045_agent_shelves.sql" },
{ version: 46, file: "046_project_upload_tokens.sql" },
{ version: 47, file: "047_purge_team_shelf_rows.sql" },
{ version: 48, file: "048_share_issuer.sql" },
{ version: 49, file: "049_share_revision_and_folder_indexes.sql" },
{ version: 50, file: "050_project_video.sql" },
{ version: 51, file: "051_artifact_purge.sql" },
{ version: 52, file: "052_share_open_days.sql" },
{ version: 53, file: "053_share_review_letters.sql" },
{ version: 54, file: "054_share_follow_mode.sql" },
{ version: 55, file: "055_audit_payload.sql" },
{ version: 56, file: "056_shelf_card.sql" },
{ version: 57, file: "057_work_owner_and_acceptance.sql" },
{ version: 58, file: "058_service_principals.sql" },
{ version: 59, file: "059_agent_allowed_shelves.sql" },
{ version: 60, file: "060_erase_freezes_service_accounts.sql" },
{ version: 61, file: "061_agent_read_days.sql" },
{ version: 62, file: "062_erase_clears_read_counts.sql" },
{ version: 63, file: "063_audit_snapshot_indexes.sql" },
{ version: 64, file: "064_audit_feed_index.sql" },
{ version: 65, file: "065_agent_sessions.sql" },
{ version: 66, file: "066_enterprise_request_contact.sql" },
{ version: 67, file: "067_shelf_invitations.sql" },
{ version: 68, file: "068_feed_proposals.sql" },
{ version: 69, file: "069_account_erased_event.sql" },
{ version: 70, file: "070_organisations.sql" },
{ version: 71, file: "071_webhooks.sql" },
{ version: 72, file: "072_account_disable_reasons.sql" },
{ version: 73, file: "073_deprovision_organisation.sql" },
{ version: 74, file: "074_operator_sign_in_links.sql" },
{ version: 75, file: "075_shelf_search_index.sql" },
{ version: 76, file: "076_provisional_erasures.sql" },
{ version: 77, file: "077_onboarding_hidden.sql" },
] as const satisfies readonly SchemaMigration[];
export const SCHEMA_MIGRATIONS: readonly SchemaMigration[] = Object.freeze(
catalog.map((migration) => Object.freeze({ ...migration })),
);
export const EXPECTED_MIGRATION_VERSIONS: readonly number[] = Object.freeze(
SCHEMA_MIGRATIONS.map(({ version }) => version),
);
export const CURRENT_SCHEMA_VERSION = SCHEMA_MIGRATIONS[SCHEMA_MIGRATIONS.length - 1]!.version;
export function migrationFileUrl(file: string): URL {
return new URL(`../deploy/migrations/${file}`, import.meta.url);
}