開発ブログ一覧に戻る
Update2026年1月2日

v0.3.0のデータベース変更と移行

v0.3.0では、内部のデータベース構造を大きく変更しました。 本記事では、なぜこの変更が必要だったのか、そしてデータの移行方法について説明します。

なぜデータベースを変更するのか

一括採点は、採点データをSQLiteデータベースで管理しています。 データベースには「どのような情報をどのような形で保存するか」というルール(スキーマ)があり、 新しい機能を追加する際には、このルールを変更する必要があることがあります。

たとえば、「プロジェクトと学級の関係を柔軟に設定したい」という機能を追加する場合、 従来の「1つのプロジェクトに1つの学級」というデータ構造では対応できません。 「複数の学級を1つのプロジェクトで採点する」「同じ学級を複数のプロジェクトで使い回す」 といった使い方ができるよう、データの持ち方を変える必要があります。

このような変更を破壊的変更と呼びます。 古いバージョンのデータと新しいバージョンのデータの形式が異なるため、 そのままでは互換性がありません。

v0.3.0で追加された機能

v0.3.0に向けて、以下の機能を追加しました。 これらはすべて、データベース構造の変更を必要としました。

プロジェクトと学級の柔軟な関係

1つのプロジェクトに複数の学級を関連付けられるようになりました。 さらに、「受験生徒の追加用」「統計集計用」といったフラグで、 学級ごとの役割を設定できます。

たとえば、同じテストを複数のクラスで実施し、 クラス別の採点と全体の統計を1つのプロジェクトで管理できます。

ユーザー権限管理

プロジェクトごとに「所有者」と「採点者」の権限を設定できるようになりました。 将来的に複数人での採点に対応するための準備です。

  • 所有者(OWNER) - プロジェクトの設定変更、メンバー管理が可能
  • 採点者(GRADER) - 採点作業のみ可能

設定のデータベース移行

従来、一部の設定はブラウザのローカルストレージに保存していました。 v0.3.0では、これらの設定をデータベースに移行しました。

  • キーボードショートカットの設定
  • 採点画面の表示設定(選択枠の色、採点状態の色など)
  • 採点マークの設定
  • 個人成績表のオプション

これにより、設定がプロジェクトやユーザーに紐づいて管理され、 データのエクスポート・インポート時に設定も一緒に移行できるようになりました。

データの移行方法

データベース構造が変更されると、古いバージョンで作成したデータは新しいバージョンでは読み込めません。 一括採点はインストーラーや自動アップデート機能を持たない実行ファイル形式のため、 新バージョンへの移行はエクスポート・インポート機能を使って行います。

エクスポート・インポートの仕組み

プロジェクトをエクスポートすると、採点データ、設定、画像などが1つのファイルにまとめられます。 新しいバージョンでインポートする際、内部で形式を変換してから取り込みます。

エクスポートファイルには「バージョン番号」が含まれており、 どのバージョンで作成されたデータかを判別できます。 インポート時には、そのバージョンに応じた変換処理を行います。

たとえば、v0.2.xで作成したプロジェクトをv0.3.0でインポートする場合:

  1. エクスポートファイルのバージョンを確認(v2形式)
  2. v2形式のデータを読み込む
  3. v3形式に変換(新しいテーブル構造に対応)
  4. データベースに保存

この仕組みにより、古いバージョンで作成したデータも引き続き使用できます。 バージョンアップ時にデータが失われる心配はありません。

今後のバージョン方針

一括採点では、以下のバージョン方針を採用しています。

バージョン番号の意味

バージョン番号は 0.x.z の形式です。

  • x(マイナーバージョン) - データベース構造の変更を伴う更新
  • z(パッチバージョン) - バグ修正や小さな機能追加

パッチバージョン(0.x.z)では、データベース構造は変更しません。 0.3.1、0.3.2、0.3.3...と更新しても、データの形式は0.3.0と同じです。 安心してアップデートできます。

マイナーバージョン(0.x)の更新時のみ、データベース構造が変更される可能性があります。 0.3.x → 0.4.0 のような更新では、エクスポート・インポートによるデータ移行を推奨します。

大切なデータを守るために

マイナーバージョンの更新前には、プロジェクトをエクスポートしてバックアップを取ることをおすすめします。 万が一の場合でも、エクスポートファイルからデータを復元できます。

データベース構造の変更は、新機能の追加に必要なステップです。 エクスポート・インポート機能を使って、データを確実に移行してください。

一括採点を使ってみませんか?

最新版をダウンロードして、採点作業を効率化しましょう。

最新版をダウンロード