12. Приложение: Схема базы данных
Важно
Всегда создавайте резервную копию файла .db перед выполнением миграций базы данных.
12.1. Version 1.0.0
Версия 1.0.0 базы данных содержит следующие таблицы:
position: хранит позиции со столбцами id (первичный ключ) и state (состояние позиции в формате JSON).
analysis: хранит анализы позиций со столбцами id (первичный ключ), position_id (внешний ключ к position) и data (данные анализа в формате JSON).
comment: хранит комментарии, связанные с позициями, со столбцами id (первичный ключ), position_id (внешний ключ к position) и text (текст комментария).
metadata: хранит метаданные базы данных со столбцами key (первичный ключ) и value (значение, связанное с ключом).
12.2. Version 1.1.0
Версия 1.1.0 базы данных добавляет следующую таблицу:
command_history: хранит историю команд со столбцами id (первичный ключ), command (текст команды) и timestamp (дата и время выполнения команды).
Остальные таблицы остаются без изменений по сравнению с версией 1.0.0.
Для миграции базы данных с версии 1.0.0 до версии 1.1.0 выполните команду migrate_from_1_0_to_1_1 в blunderDB.
12.3. Version 1.2.0
Версия 1.2.0 базы данных добавляет следующую таблицу:
filter_library: хранит поисковые фильтры со столбцами id (первичный ключ), name (название фильтра), command (команда, связанная с фильтром) и edit_position (редактируемая позиция при сохранении фильтра).
Остальные таблицы остаются без изменений по сравнению с версией 1.1.0.
Для миграции базы данных с версии 1.1.0 до версии 1.2.0 выполните команду migrate_from_1_1_to_1_2 в blunderDB.
12.4. Version 1.3.0
Версия 1.3.0 базы данных добавляет следующую таблицу:
search_history: хранит историю поиска позиций со столбцами id (первичный ключ), command (текст поисковой команды), position (состояние позиции в момент поиска) и timestamp (дата и время поиска).
Остальные таблицы остаются без изменений по сравнению с версией 1.2.0.
Для миграции базы данных с версии 1.2.0 до версии 1.3.0 выполните команду migrate_from_1_2_to_1_3 в blunderDB.
12.5. Version 1.4.0
Версия 1.4.0 базы данных добавляет следующие таблицы для управления матчами:
match: хранит импортированные матчи со столбцами id (первичный ключ), player1_name, player2_name, event, location, round, match_length, match_date, import_date, file_path, game_count и match_hash (хеш для обнаружения дубликатов).
game: хранит партии матча со столбцами id (первичный ключ), match_id (внешний ключ к match), game_number, initial_score_1, initial_score_2, winner, points_won и move_count.
move: хранит ходы партии со столбцами id (первичный ключ), game_id (внешний ключ к game), move_number, move_type, position_id (внешний ключ к position), player, dice_1, dice_2, checker_move и cube_action.
move_analysis: хранит анализ каждого хода со столбцами id (первичный ключ), move_id (внешний ключ к move), analysis_type, depth, equity, equity_error, win_rate, gammon_rate, backgammon_rate, opponent_win_rate, opponent_gammon_rate и opponent_backgammon_rate.
Миграция с 1.3.0 до 1.4.0 выполняется автоматически при открытии базы данных.
12.6. Version 1.5.0
Версия 1.5.0 базы данных добавляет следующие таблицы для управления коллекциями:
collection: хранит коллекции позиций со столбцами id (первичный ключ), name, description, sort_order, created_at и updated_at.
collection_position: связующая таблица, которая связывает позиции с коллекциями, со столбцами id (первичный ключ), collection_id (внешний ключ к collection), position_id (внешний ключ к position), sort_order и added_at. Пара (collection_id, position_id) является уникальной.
Миграция с 1.4.0 до 1.5.0 выполняется автоматически при открытии базы данных.
12.7. Version 1.6.0
Версия 1.6.0 базы данных добавляет следующую таблицу для управления турнирами:
tournament: хранит турниры со столбцами id (первичный ключ), name, date, location, sort_order, created_at и updated_at.
Добавление столбца tournament_id (внешний ключ к tournament) в таблицу match для назначения матча турниру.
Миграция с 1.5.0 до 1.6.0 выполняется автоматически при открытии базы данных.
12.8. Version 1.7.0
Версия 1.7.0 базы данных добавляет следующий столбец:
Добавление столбца last_visited_position в таблицу match для запоминания последней посещённой позиции в каждом матче.
Миграция с 1.6.0 до 1.7.0 выполняется автоматически при открытии базы данных.
Примечание
Начиная с версии 0.10.0, все миграции баз данных выполняются автоматически при открытии файла базы данных.