データベース定義変更の仕組みとトラブルシューティング

最終更新日: 2022年6月30日

スキーママイグレーション

開発者がモデルを追加したり、モデルの項目を追加、削除したとき、ビルド処理でデータベースのテーブル定義の変更処理を自動的に行います。
これをスキーママイグレーションと呼びます。

スキーママイグレーションとは
「スキーマ」とはデータベースのテーブル定義をいいます。「マイグレーション」は変更前と変更後の差分にあわせてテーブル定義の修正を行う処理をいいます。

トラブルシューティング

すでにある項目の型を変更したらビルド時にエラーになった

すでにある項目の「型」を変更しようとすると次のような警告ダイアログが表示されます。

型を変更しようとした場合の警告ダイアログ

例えば顧客モデルの生年月日項目がこれまで文字列型だったが、日付型へ変更したとします。このとき、すでに登録済みのデータがあった場合、文字列の情報を日付として扱うことができません。

対策 - 準備

型を変更したあとにビルドを行う場合、次の処理を行ってください。

  1. ビルドの前に、開発環境のアプリケーションへログインします。そのモデルのデータを全削除するか、または変更しようとしている項目の値を消して更新します。つまり、型を変更したモデルのデータは再作成する必要があります。
  2. 開発環境のデータをエクスポートします。後述する「ビルドエラーの復元」で、このエクスポートデータを使います。
  3. ビルドします。1. が適切に行われていた場合はビルドに成功します。この場合は問題ありません。

3.でビルドに失敗した場合、以下の手順を行ってください。

対策 - ビルドエラーの復元

  1. 開発環境のデータベースを初期化します。
  2. リポジトリの修正作業を1つ以上、行います。(例えばある項目の一覧表示設定をいったん有効にし、また解除するなど)リポジトリの修正があれば差分ビルドができるようになります。
  3. 差分ビルドを行います。今度は成功します。
  4. アプリケーションが起動します。管理者(admin)のパスワードは初期化されています。ログオン後、最後にエクスポートしたデータ(バックアップデータ)を選択し、インポート処理を行います。

重要

バックアップデータが存在しない場合、データの復元を行うことができません。型を変更したあとにビルドを行う場合、ビルドの前にアプリケーションの全データをエクスポートするようにしてください。