12. Anexo: Esquema de la base de datos
Importante
Haga siempre una copia de seguridad de su archivo .db antes de realizar migraciones de la base de datos.
12.1. Versión 1.0.0
La versión 1.0.0 de la base de datos contiene las siguientes tablas:
position: Almacena las posiciones con las columnas id (clave primaria) y state (estado de la posición en formato JSON).
analysis: Almacena los análisis de las posiciones con las columnas id (clave primaria), position_id (clave foránea que referencia position) y data (datos del análisis en formato JSON).
comment: Almacena los comentarios asociados a las posiciones con las columnas id (clave primaria), position_id (clave foránea que referencia position) y text (texto del comentario).
metadata: Almacena los metadatos de la base de datos con las columnas key (clave primaria) y value (valor asociado a la clave).
12.2. Versión 1.1.0
La versión 1.1.0 de la base de datos añade la siguiente tabla:
command_history: Almacena el historial de comandos con las columnas id (clave primaria), command (texto del comando) y timestamp (fecha y hora de ejecución del comando).
Las demás tablas permanecen sin cambios respecto a la versión 1.0.0.
Para migrar la base de datos de la versión 1.0.0 a la versión 1.1.0, ejecute el comando migrate_from_1_0_to_1_1 en blunderDB.
12.3. Versión 1.2.0
La versión 1.2.0 de la base de datos añade la siguiente tabla:
filter_library: Almacena los filtros de búsqueda con las columnas id (clave primaria), name (nombre del filtro), command (comando asociado al filtro) y edit_position (posición editada al guardar el filtro).
Las demás tablas permanecen sin cambios respecto a la versión 1.1.0.
Para migrar la base de datos de la versión 1.1.0 a la versión 1.2.0, ejecute el comando migrate_from_1_1_to_1_2 en blunderDB.
12.4. Versión 1.3.0
La versión 1.3.0 de la base de datos añade la siguiente tabla:
search_history: Almacena el historial de búsquedas de posiciones con las columnas id (clave primaria), command (texto del comando de búsqueda), position (estado de la posición en el momento de la búsqueda) y timestamp (fecha y hora de la búsqueda).
Las demás tablas permanecen sin cambios respecto a la versión 1.2.0.
Para migrar la base de datos de la versión 1.2.0 a la versión 1.3.0, ejecute el comando migrate_from_1_2_to_1_3 en blunderDB.
12.5. Versión 1.4.0
La versión 1.4.0 de la base de datos añade las siguientes tablas para la gestión de partidas:
match: Almacena las partidas importadas con las columnas id (clave primaria), player1_name, player2_name, event, location, round, match_length, match_date, import_date, file_path, game_count y match_hash (hash para la detección de duplicados).
game: Almacena los juegos de una partida con las columnas id (clave primaria), match_id (clave foránea que referencia match), game_number, initial_score_1, initial_score_2, winner, points_won y move_count.
move: Almacena las jugadas de un juego con las columnas id (clave primaria), game_id (clave foránea que referencia game), move_number, move_type, position_id (clave foránea que referencia position), player, dice_1, dice_2, checker_move y cube_action.
move_analysis: Almacena el análisis de cada jugada con las columnas id (clave primaria), move_id (clave foránea que referencia move), analysis_type, depth, equity, equity_error, win_rate, gammon_rate, backgammon_rate, opponent_win_rate, opponent_gammon_rate y opponent_backgammon_rate.
La migración de 1.3.0 a 1.4.0 es automática al abrir la base de datos.
12.6. Versión 1.5.0
La versión 1.5.0 de la base de datos añade las siguientes tablas para la gestión de colecciones:
collection: Almacena las colecciones de posiciones con las columnas id (clave primaria), name, description, sort_order, created_at y updated_at.
collection_position: Tabla de unión que asocia posiciones con colecciones con las columnas id (clave primaria), collection_id (clave foránea que referencia collection), position_id (clave foránea que referencia position), sort_order y added_at. El par (collection_id, position_id) es único.
La migración de 1.4.0 a 1.5.0 es automática al abrir la base de datos.
12.7. Versión 1.6.0
La versión 1.6.0 de la base de datos añade la siguiente tabla para la gestión de torneos:
tournament: Almacena los torneos con las columnas id (clave primaria), name, date, location, sort_order, created_at y updated_at.
Adición de la columna tournament_id (clave foránea que referencia tournament) en la tabla match para asignar una partida a un torneo.
La migración de 1.5.0 a 1.6.0 es automática al abrir la base de datos.
12.8. Versión 1.7.0
La versión 1.7.0 de la base de datos añade la siguiente columna:
Adición de la columna last_visited_position en la tabla match para recordar la última posición visitada en cada partida.
La migración de 1.6.0 a 1.7.0 es automática al abrir la base de datos.
Nota
Desde la versión 0.10.0, todas las migraciones de bases de datos se realizan automáticamente al abrir un archivo de base de datos.