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, все миграции баз данных выполняются автоматически при открытии файла базы данных.