chore(release): v0.942 — Compress (migration consolidation procedure, mark script)
This commit is contained in:
parent
7e015f8e73
commit
40fba3cbbf
5 changed files with 157 additions and 1 deletions
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
0.941
|
||||
0.942
|
||||
|
|
|
|||
46
docs/MIGRATION_CONSOLIDATION.md
Normal file
46
docs/MIGRATION_CONSOLIDATION.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Migration Consolidation — v0.942
|
||||
|
||||
## Contexte
|
||||
|
||||
Les migrations v0→v0.803 (~91 fichiers) sont consolidées en un schéma unique pour les nouvelles installations.
|
||||
|
||||
## Trois chemins
|
||||
|
||||
| Cas | Action |
|
||||
|-----|--------|
|
||||
| **DB vide** | Appliquer `000_full_schema.sql` (généré par pg_dump) |
|
||||
| **DB existante** (déjà migrée) | Appliquer `000_mark_consolidated.sql` — marque sans modifier le schéma |
|
||||
| **DB consolidée** | Appliquer les migrations incrémentales après consolidation |
|
||||
|
||||
## Générer le schéma complet
|
||||
|
||||
```bash
|
||||
# Depuis une DB avec toutes les migrations appliquées
|
||||
pg_dump -h localhost -U veza -d veza --schema-only --no-owner --no-privileges \
|
||||
-f veza-backend-api/migrations/000_full_schema.sql
|
||||
```
|
||||
|
||||
## Marquer une base existante
|
||||
|
||||
Pour une base qui a déjà exécuté les 91 migrations, exécuter manuellement :
|
||||
|
||||
```bash
|
||||
psql $DATABASE_URL -f scripts/mark_consolidated.sql
|
||||
```
|
||||
|
||||
Cela insère le marqueur dans `schema_migrations` sans modifier le schéma. L'outil de migration ignorera ensuite les anciennes migrations consolidées.
|
||||
|
||||
## Archive
|
||||
|
||||
Les migrations historiques sont archivées dans `veza-backend-api/migrations/archive/v0_to_v0803/` après consolidation. Voir le README de l'archive pour la liste complète.
|
||||
|
||||
## Test de parité
|
||||
|
||||
Valider que le schéma `000_full_schema.sql` produit un résultat équivalent aux 91 migrations :
|
||||
|
||||
```bash
|
||||
# Optionnel : test avec testcontainers
|
||||
go test ./tests/... -run MigrationParity -v
|
||||
```
|
||||
|
||||
Validation manuelle acceptée si le test automatique n'est pas en place (plan de contingence v0.942).
|
||||
13
scripts/generate_full_schema.sh
Executable file
13
scripts/generate_full_schema.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
# v0.942: Generate 000_full_schema.sql from a DB with all migrations applied.
|
||||
# Prerequisite: PostgreSQL with veza DB, all migrations already run.
|
||||
# Usage: ./scripts/generate_full_schema.sh
|
||||
# Or: DATABASE_URL=postgres://... ./scripts/generate_full_schema.sh
|
||||
|
||||
set -e
|
||||
DB_URL="${DATABASE_URL:-postgres://veza:veza_password@localhost:5432/veza?sslmode=disable}"
|
||||
OUTPUT="veza-backend-api/migrations/000_full_schema.sql"
|
||||
|
||||
echo "Generating full schema from $DB_URL -> $OUTPUT"
|
||||
pg_dump "$DB_URL" --schema-only --no-owner --no-privileges -f "$OUTPUT"
|
||||
echo "Done. Review $OUTPUT before committing."
|
||||
90
scripts/mark_consolidated.sql
Normal file
90
scripts/mark_consolidated.sql
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
-- v0.942: Mark existing database as consolidated (no schema change)
|
||||
-- Run this ONCE MANUALLY on databases that already have all migrations applied (v0→v0.803).
|
||||
-- Do NOT add to migrations/ — it would corrupt new DBs.
|
||||
-- Usage: psql $DATABASE_URL -f scripts/mark_consolidated.sql
|
||||
-- See docs/MIGRATION_CONSOLIDATION.md
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES
|
||||
('001_extensions_and_types.sql'),
|
||||
('010_auth_and_users.sql'),
|
||||
('011_cleanup_refresh_tokens.sql'),
|
||||
('012_add_user_social_links.sql'),
|
||||
('020_create_sessions.sql'),
|
||||
('020_z_migration_rename_records.sql'),
|
||||
('021_rbac_and_profiles.sql'),
|
||||
('030_files_management.sql'),
|
||||
('040_streaming_core.sql'),
|
||||
('041_streaming_analytics.sql'),
|
||||
('042_media_processing.sql'),
|
||||
('043_analytics_events.sql'),
|
||||
('044_playlist_share_links.sql'),
|
||||
('045_user_follows.sql'),
|
||||
('046_user_blocks.sql'),
|
||||
('047_notifications.sql'),
|
||||
('048_search_indexes.sql'),
|
||||
('049_composite_indexes.sql'),
|
||||
('050_data_validation_constraints.sql'),
|
||||
('051_legacy_chat.sql'),
|
||||
('052_stats_views.sql'),
|
||||
('053_audit_triggers.sql'),
|
||||
('060_job_queue.sql'),
|
||||
('069_groups_and_members.sql'),
|
||||
('070_create_social_tables.sql'),
|
||||
('075_create_webhooks.sql'),
|
||||
('076_create_gear_items.sql'),
|
||||
('077_create_live_streams.sql'),
|
||||
('078_add_missing_indexes.sql'),
|
||||
('080_add_payment_fields.sql'),
|
||||
('081_create_playback_analytics.sql'),
|
||||
('082_create_api_keys.sql'),
|
||||
('083_add_user_banner.sql'),
|
||||
('084_add_track_lyrics.sql'),
|
||||
('085_add_track_tags.sql'),
|
||||
('086_add_pg_trgm.sql'),
|
||||
('087_queue_sessions.sql'),
|
||||
('088_user_presence.sql'),
|
||||
('089_group_join_requests.sql'),
|
||||
('090_push_subscriptions.sql'),
|
||||
('091_user_presence_invisible.sql'),
|
||||
('092_group_invitations.sql'),
|
||||
('093_notification_preferences.sql'),
|
||||
('094_user_presence_rich.sql'),
|
||||
('095_products_enrichment.sql'),
|
||||
('096_product_previews.sql'),
|
||||
('097_product_images.sql'),
|
||||
('098_product_licenses.sql'),
|
||||
('099_promo_codes.sql'),
|
||||
('100_orders_discount.sql'),
|
||||
('101_product_reviews.sql'),
|
||||
('102_license_revoked.sql'),
|
||||
('103_tracks_waveform.sql'),
|
||||
('104_user_folders.sql'),
|
||||
('105_user_files.sql'),
|
||||
('106_user_storage_quotas.sql'),
|
||||
('107_gear_is_public.sql'),
|
||||
('108_gear_images.sql'),
|
||||
('109_read_receipts.sql'),
|
||||
('110_delivered_status.sql'),
|
||||
('111_message_reactions.sql'),
|
||||
('112_messages_extra_columns.sql'),
|
||||
('113_messages_fts.sql'),
|
||||
('114_seller_stripe_accounts.sql'),
|
||||
('115_seller_transfers.sql'),
|
||||
('116_seller_transfers_retry.sql'),
|
||||
('117_live_streams_go_live.sql'),
|
||||
('118_user_preferences.sql'),
|
||||
('119_cloud_file_versions.sql'),
|
||||
('120_gear_warranty.sql'),
|
||||
('121_gear_documents.sql'),
|
||||
('122_gear_repairs.sql'),
|
||||
('900_triggers_and_functions.sql'),
|
||||
('910_create_audit_logs.sql'),
|
||||
('920_add_performance_indexes.sql'),
|
||||
('930_add_missing_foreign_keys.sql'),
|
||||
('931_add_refresh_tokens_updated_at.sql'),
|
||||
('932_add_user_deletion_fields.sql'),
|
||||
('933_reports.sql'),
|
||||
('934_announcements.sql'),
|
||||
('935_feature_flags.sql'),
|
||||
('936_oauth_states_pkce.sql')
|
||||
ON CONFLICT (version) DO NOTHING;
|
||||
7
veza-backend-api/migrations/archive/README.md
Normal file
7
veza-backend-api/migrations/archive/README.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Migration Archive — v0.942
|
||||
|
||||
Ce dossier contiendra les migrations historiques (v0→v0.803) après consolidation complète.
|
||||
|
||||
Procédure : voir `docs/MIGRATION_CONSOLIDATION.md`.
|
||||
|
||||
État actuel : les migrations restent dans `migrations/` ; l'archive sera peuplée lors de la consolidation finale (000_full_schema.sql généré, outil migré).
|
||||
Loading…
Reference in a new issue