12. Appendice: Schema del database

Importante

Esegui sempre un backup del tuo file .db prima di effettuare migrazioni del database.

12.1. Versione 1.0.0

La versione 1.0.0 del database contiene le seguenti tabelle:

  • position: Memorizza le posizioni con le colonne id (chiave primaria) e state (stato della posizione in formato JSON).

  • analysis: Memorizza le analisi delle posizioni con le colonne id (chiave primaria), position_id (chiave esterna verso position) e data (dati dell’analisi in formato JSON).

  • comment: Memorizza i commenti associati alle posizioni con le colonne id (chiave primaria), position_id (chiave esterna verso position) e text (testo del commento).

  • metadata: Memorizza i metadati del database con le colonne key (chiave primaria) e value (valore associato alla chiave).

12.2. Versione 1.1.0

La versione 1.1.0 del database aggiunge la seguente tabella:

  • command_history: Memorizza la cronologia dei comandi con le colonne id (chiave primaria), command (testo del comando) e timestamp (data e ora di esecuzione del comando).

Le altre tabelle rimangono invariate rispetto alla versione 1.0.0.

Per migrare il database dalla versione 1.0.0 alla versione 1.1.0, esegui il comando migrate_from_1_0_to_1_1 in blunderDB.

12.3. Versione 1.2.0

La versione 1.2.0 del database aggiunge la seguente tabella:

  • filter_library: Memorizza i filtri di ricerca con le colonne id (chiave primaria), name (nome del filtro), command (comando associato al filtro) e edit_position (posizione modificata al momento del salvataggio del filtro).

Le altre tabelle rimangono invariate rispetto alla versione 1.1.0.

Per migrare il database dalla versione 1.1.0 alla versione 1.2.0, esegui il comando migrate_from_1_1_to_1_2 in blunderDB.

12.4. Versione 1.3.0

La versione 1.3.0 del database aggiunge la seguente tabella:

  • search_history: Memorizza la cronologia delle ricerche di posizioni con le colonne id (chiave primaria), command (testo del comando di ricerca), position (stato della posizione al momento della ricerca) e timestamp (data e ora della ricerca).

Le altre tabelle rimangono invariate rispetto alla versione 1.2.0.

Per migrare il database dalla versione 1.2.0 alla versione 1.3.0, esegui il comando migrate_from_1_2_to_1_3 in blunderDB.

12.5. Versione 1.4.0

La versione 1.4.0 del database aggiunge le seguenti tabelle per la gestione dei match:

  • match: Memorizza i match importati con le colonne id (chiave primaria), player1_name, player2_name, event, location, round, match_length, match_date, import_date, file_path, game_count e match_hash (hash per il rilevamento dei duplicati).

  • game: Memorizza le partite di un match con le colonne id (chiave primaria), match_id (chiave esterna verso match), game_number, initial_score_1, initial_score_2, winner, points_won e move_count.

  • move: Memorizza le mosse di una partita con le colonne id (chiave primaria), game_id (chiave esterna verso game), move_number, move_type, position_id (chiave esterna verso position), player, dice_1, dice_2, checker_move e cube_action.

  • move_analysis: Memorizza l’analisi di ogni mossa con le colonne id (chiave primaria), move_id (chiave esterna verso move), analysis_type, depth, equity, equity_error, win_rate, gammon_rate, backgammon_rate, opponent_win_rate, opponent_gammon_rate e opponent_backgammon_rate.

La migrazione dalla 1.3.0 alla 1.4.0 è automatica all’apertura del database.

12.6. Versione 1.5.0

La versione 1.5.0 del database aggiunge le seguenti tabelle per la gestione delle collezioni:

  • collection: Memorizza le collezioni di posizioni con le colonne id (chiave primaria), name, description, sort_order, created_at e updated_at.

  • collection_position: Tabella di collegamento che associa le posizioni alle collezioni con le colonne id (chiave primaria), collection_id (chiave esterna verso collection), position_id (chiave esterna verso position), sort_order e added_at. La coppia (collection_id, position_id) è unica.

La migrazione dalla 1.4.0 alla 1.5.0 è automatica all’apertura del database.

12.7. Versione 1.6.0

La versione 1.6.0 del database aggiunge la seguente tabella per la gestione dei tornei:

  • tournament: Memorizza i tornei con le colonne id (chiave primaria), name, date, location, sort_order, created_at e updated_at.

  • Aggiunta della colonna tournament_id (chiave esterna verso tournament) nella tabella match per assegnare un match a un torneo.

La migrazione dalla 1.5.0 alla 1.6.0 è automatica all’apertura del database.

12.8. Versione 1.7.0

La versione 1.7.0 del database aggiunge la seguente colonna:

  • Aggiunta della colonna last_visited_position nella tabella match per memorizzare l’ultima posizione visitata in ogni match.

La migrazione dalla 1.6.0 alla 1.7.0 è automatica all’apertura del database.

Nota

A partire dalla versione 0.10.0, tutte le migrazioni del database vengono effettuate automaticamente all’apertura di un file di database.