fix(db): align automatic migrations with SQL files
This commit is contained in:
parent
7a5de55a56
commit
3366d40101
1 changed files with 17 additions and 51 deletions
|
|
@ -14,6 +14,8 @@ import (
|
|||
"gorm.io/driver/postgres"
|
||||
"gorm.io/driver/sqlite" // Added sqlite driver
|
||||
"gorm.io/gorm"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// Config contient la configuration de la base de données
|
||||
|
|
@ -167,54 +169,6 @@ func (d *Database) RunMigrations() error {
|
|||
// GORM n'est plus utilisé pour créer/modifier les tables
|
||||
d.Logger.Info("📦 Exécution des migrations SQL...")
|
||||
|
||||
// Liste des migrations à exécuter dans l'ordre
|
||||
migrations := []string{
|
||||
// === TABLES DE BASE ===
|
||||
"001_create_users.sql", // Table users - DOIT être première
|
||||
"003_email_verification.sql",
|
||||
"004_oauth_accounts.sql",
|
||||
"005_user_profiles.sql",
|
||||
"008_playlists.sql",
|
||||
"009_follows.sql",
|
||||
"013_notifications.sql",
|
||||
"016_analytics.sql",
|
||||
"017_admin_logs.sql",
|
||||
"018_create_email_verification_tokens.sql",
|
||||
"019_create_password_reset_tokens.sql",
|
||||
"020_create_sessions.sql",
|
||||
"021_add_profile_privacy.sql",
|
||||
"022_add_profile_slug.sql",
|
||||
"023_create_roles_permissions.sql",
|
||||
"024_seed_permissions.sql",
|
||||
"025_create_tracks.sql",
|
||||
"026_add_track_status.sql",
|
||||
"027_create_track_likes.sql",
|
||||
"028_create_track_comments.sql",
|
||||
"029_create_track_plays.sql",
|
||||
"030_create_playlists.sql",
|
||||
"031_create_playlist_collaborators.sql",
|
||||
"031_create_track_shares.sql",
|
||||
"032_create_playlist_follows.sql",
|
||||
"032_create_track_versions.sql",
|
||||
"033_create_track_history.sql",
|
||||
"034_create_hls_streams_table.sql",
|
||||
"035_create_hls_transcode_queue.sql",
|
||||
"036_create_bitrate_adaptation_logs.sql",
|
||||
"037_create_playback_analytics.sql",
|
||||
"038_add_playback_analytics_indexes.sql",
|
||||
"040_create_refresh_tokens.sql",
|
||||
"041_create_rooms.sql",
|
||||
"042_create_room_members.sql",
|
||||
"043_create_messages.sql",
|
||||
"044_add_sessions_revoked_at.sql",
|
||||
"045_create_user_sessions.sql",
|
||||
"046_add_playlists_missing_columns.sql", // Ajout follower_count et deleted_at
|
||||
"add_sessions_table.sql",
|
||||
"add_totp_tables.sql",
|
||||
"add_audit_logs.sql",
|
||||
"add_performance_indexes.sql",
|
||||
}
|
||||
|
||||
// Créer la table migrations si elle n'existe pas
|
||||
createMigrationsTable := `
|
||||
CREATE TABLE IF NOT EXISTS schema_migrations (
|
||||
|
|
@ -227,8 +181,21 @@ func (d *Database) RunMigrations() error {
|
|||
return fmt.Errorf("failed to create migrations table: %w", err)
|
||||
}
|
||||
|
||||
// Découvir les fichiers de migration
|
||||
files, err := filepath.Glob("migrations/*.sql")
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list migration files: %w", err)
|
||||
}
|
||||
sort.Strings(files)
|
||||
|
||||
if len(files) == 0 {
|
||||
d.Logger.Warn("⚠️ Aucune migration trouvée dans le dossier migrations/")
|
||||
}
|
||||
|
||||
// Exécuter chaque migration
|
||||
for _, migration := range migrations {
|
||||
for _, file := range files {
|
||||
migration := filepath.Base(file)
|
||||
|
||||
// Vérifier si la migration a déjà été appliquée
|
||||
var exists bool
|
||||
checkQuery := "SELECT EXISTS(SELECT 1 FROM schema_migrations WHERE version = $1)"
|
||||
|
|
@ -242,8 +209,7 @@ func (d *Database) RunMigrations() error {
|
|||
}
|
||||
|
||||
// Lire le fichier de migration
|
||||
migrationPath := fmt.Sprintf("migrations/%s", migration)
|
||||
content, err := os.ReadFile(migrationPath)
|
||||
content, err := os.ReadFile(file)
|
||||
if err != nil {
|
||||
d.Logger.Warn("Migration non trouvée, skip", zap.String("migration", migration))
|
||||
continue
|
||||
|
|
|
|||
Loading…
Reference in a new issue