All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 54s
- Changed file permissions from 644 to 755 for various files in the mobile-app and mobile-app_legacy_rn_expo directories, ensuring executable permissions where necessary. - Added a new SQL migration script to the backend to introduce missing columns for club billing and invoice settings in the clubs table, maintaining synchronization with the current Sequelize model.
186 lines
6.5 KiB
SQL
Executable File
186 lines
6.5 KiB
SQL
Executable File
-- Cleanup-Script für MySQL Keys
|
|
-- Führt dieses Script in der MySQL-Datenbank aus, um überflüssige Keys zu entfernen
|
|
|
|
USE trainingsdiary;
|
|
|
|
-- 1. Alle nicht-essentiellen Keys aus der member-Tabelle entfernen
|
|
-- (behält nur PRIMARY KEY und UNIQUE Keys für kritische Felder)
|
|
|
|
-- Überflüssige INDEX entfernen (falls vorhanden)
|
|
DROP INDEX IF EXISTS idx_member_hashed_id ON member;
|
|
DROP INDEX IF EXISTS idx_member_first_name ON member;
|
|
DROP INDEX IF EXISTS idx_member_last_name ON member;
|
|
DROP INDEX IF EXISTS idx_member_birth_date ON member;
|
|
DROP INDEX IF EXISTS idx_member_active ON member;
|
|
DROP INDEX IF EXISTS idx_member_created_at ON member;
|
|
DROP INDEX IF EXISTS idx_member_updated_at ON member;
|
|
|
|
-- 2. Überflüssige Keys aus anderen Tabellen entfernen
|
|
-- User-Tabelle
|
|
DROP INDEX IF EXISTS idx_user_email ON user;
|
|
DROP INDEX IF EXISTS idx_user_created_at ON user;
|
|
DROP INDEX IF EXISTS idx_user_updated_at ON user;
|
|
|
|
-- Clubs-Tabelle
|
|
DROP INDEX IF EXISTS idx_clubs_name ON clubs;
|
|
DROP INDEX IF EXISTS idx_clubs_created_at ON clubs;
|
|
DROP INDEX IF EXISTS idx_clubs_updated_at ON clubs;
|
|
|
|
-- User_Club-Tabelle
|
|
DROP INDEX IF EXISTS idx_user_club_approved ON user_club;
|
|
DROP INDEX IF EXISTS idx_user_club_created_at ON user_club;
|
|
DROP INDEX IF EXISTS idx_user_club_updated_at ON user_club;
|
|
|
|
-- Log-Tabelle
|
|
DROP INDEX IF EXISTS idx_log_activity ON log;
|
|
DROP INDEX IF EXISTS idx_log_created_at ON log;
|
|
DROP INDEX IF EXISTS idx_log_updated_at ON log;
|
|
|
|
-- Diary_Dates-Tabelle
|
|
DROP INDEX IF EXISTS idx_diary_dates_date ON diary_dates;
|
|
DROP INDEX IF EXISTS idx_diary_dates_created_at ON diary_dates;
|
|
DROP INDEX IF EXISTS idx_diary_dates_updated_at ON diary_dates;
|
|
|
|
-- Participants-Tabelle
|
|
DROP INDEX IF EXISTS idx_participant_created_at ON participants;
|
|
DROP INDEX IF EXISTS idx_participant_updated_at ON participants;
|
|
|
|
-- Activity-Tabelle
|
|
DROP INDEX IF EXISTS idx_activity_created_at ON activities;
|
|
DROP INDEX IF EXISTS idx_activity_updated_at ON activities;
|
|
|
|
-- Member_Note-Tabelle
|
|
DROP INDEX IF EXISTS idx_member_note_created_at ON member_note;
|
|
DROP INDEX IF EXISTS idx_member_note_updated_at ON member_note;
|
|
|
|
-- Diary_Note-Tabelle
|
|
DROP INDEX IF EXISTS idx_diary_note_created_at ON diary_note;
|
|
DROP INDEX IF EXISTS idx_diary_note_updated_at ON diary_note;
|
|
|
|
-- Diary_Tag-Tabelle
|
|
DROP INDEX IF EXISTS idx_diary_tag_created_at ON diary_tag;
|
|
DROP INDEX IF EXISTS idx_diary_tag_updated_at ON diary_tag;
|
|
|
|
-- Member_Diary_Tag-Tabelle
|
|
DROP INDEX IF EXISTS idx_member_diary_tag_created_at ON member_diary_tag;
|
|
DROP INDEX IF EXISTS idx_member_diary_tag_updated_at ON member_diary_tag;
|
|
|
|
-- Diary_Date_Tag-Tabelle
|
|
DROP INDEX IF EXISTS idx_diary_date_tag_created_at ON diary_date_tag;
|
|
DROP INDEX IF EXISTS idx_diary_date_tag_updated_at ON diary_date_tag;
|
|
|
|
-- Diary_Member_Note-Tabelle
|
|
DROP INDEX IF EXISTS idx_diary_member_note_created_at ON diary_member_note;
|
|
DROP INDEX IF EXISTS idx_diary_member_note_updated_at ON diary_member_note;
|
|
|
|
-- Predefined_Activity-Tabelle
|
|
DROP INDEX IF EXISTS idx_predefined_activity_created_at ON predefined_activities;
|
|
DROP INDEX IF EXISTS idx_predefined_activity_updated_at ON predefined_activities;
|
|
|
|
-- Diary_Date_Activity-Tabelle
|
|
DROP INDEX IF EXISTS idx_diary_date_activity_created_at ON diary_date_activity;
|
|
DROP INDEX IF EXISTS idx_diary_date_activity_updated_at ON diary_date_activity;
|
|
|
|
-- Match-Tabelle
|
|
DROP INDEX IF EXISTS idx_match_created_at ON match;
|
|
DROP INDEX IF EXISTS idx_match_updated_at ON match;
|
|
|
|
-- League-Tabelle
|
|
DROP INDEX IF EXISTS idx_league_created_at ON league;
|
|
DROP INDEX IF EXISTS idx_league_updated_at ON league;
|
|
|
|
-- Team-Tabelle
|
|
DROP INDEX IF EXISTS idx_team_created_at ON team;
|
|
DROP INDEX IF EXISTS idx_team_updated_at ON team;
|
|
|
|
-- Season-Tabelle
|
|
DROP INDEX IF EXISTS idx_season_created_at ON season;
|
|
DROP INDEX IF EXISTS idx_season_updated_at ON season;
|
|
|
|
-- Location-Tabelle
|
|
DROP INDEX IF EXISTS idx_location_created_at ON location;
|
|
DROP INDEX IF EXISTS idx_location_updated_at ON location;
|
|
|
|
-- Group-Tabelle
|
|
DROP INDEX IF EXISTS idx_group_created_at ON `group`;
|
|
DROP INDEX IF EXISTS idx_group_updated_at ON `group`;
|
|
|
|
-- Group_Activity-Tabelle
|
|
DROP INDEX IF EXISTS idx_group_activity_created_at ON group_activity;
|
|
DROP INDEX IF EXISTS idx_group_activity_updated_at ON group_activity;
|
|
|
|
-- Tournament-Tabelle
|
|
DROP INDEX IF EXISTS idx_tournament_created_at ON tournament;
|
|
DROP INDEX IF EXISTS idx_tournament_updated_at ON tournament;
|
|
|
|
-- Tournament_Group-Tabelle
|
|
DROP INDEX IF EXISTS idx_tournament_group_created_at ON tournament_group;
|
|
DROP INDEX IF EXISTS idx_tournament_group_updated_at ON tournament_group;
|
|
|
|
-- Tournament_Member-Tabelle
|
|
DROP INDEX IF EXISTS idx_tournament_member_created_at ON tournament_member;
|
|
DROP INDEX IF EXISTS idx_tournament_member_updated_at ON tournament_member;
|
|
|
|
-- Tournament_Match-Tabelle
|
|
DROP INDEX IF EXISTS idx_tournament_match_created_at ON tournament_match;
|
|
DROP INDEX IF EXISTS idx_tournament_match_updated_at ON tournament_match;
|
|
|
|
-- Tournament_Result-Tabelle
|
|
DROP INDEX IF EXISTS idx_tournament_result_created_at ON tournament_result;
|
|
DROP INDEX IF EXISTS idx_tournament_result_updated_at ON tournament_result;
|
|
|
|
-- Accident-Tabelle
|
|
DROP INDEX IF EXISTS idx_accident_created_at ON accident;
|
|
DROP INDEX IF EXISTS idx_accident_updated_at ON accident;
|
|
|
|
-- User_Token-Tabelle
|
|
DROP INDEX IF EXISTS idx_user_token_created_at ON UserToken;
|
|
DROP INDEX IF EXISTS idx_user_token_updated_at ON UserToken;
|
|
|
|
-- 3. Nur essentiellste Keys beibehalten
|
|
-- Diese Keys sind für die Funktionalität notwendig
|
|
|
|
-- Member-Tabelle: Nur PRIMARY KEY und UNIQUE für hashed_id
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- User-Tabelle: Nur PRIMARY KEY und UNIQUE für email
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- Clubs-Tabelle: Nur PRIMARY KEY und UNIQUE für name
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- User_Club-Tabelle: Nur PRIMARY KEY
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- Log-Tabelle: Nur PRIMARY KEY
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- Diary_Dates-Tabelle: Nur PRIMARY KEY
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- Participant-Tabelle: Nur PRIMARY KEY
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- Alle anderen Tabellen: Nur PRIMARY KEY
|
|
-- (wird automatisch von MySQL verwaltet)
|
|
|
|
-- 4. Status anzeigen
|
|
SELECT
|
|
TABLE_NAME,
|
|
INDEX_NAME,
|
|
COLUMN_NAME,
|
|
NON_UNIQUE,
|
|
SEQ_IN_INDEX
|
|
FROM INFORMATION_SCHEMA.STATISTICS
|
|
WHERE TABLE_SCHEMA = 'trainingsdiary'
|
|
ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;
|
|
|
|
-- 5. Anzahl der Keys pro Tabelle anzeigen
|
|
SELECT
|
|
TABLE_NAME,
|
|
COUNT(*) as key_count
|
|
FROM INFORMATION_SCHEMA.STATISTICS
|
|
WHERE TABLE_SCHEMA = 'trainingsdiary'
|
|
GROUP BY TABLE_NAME
|
|
ORDER BY key_count DESC;
|