サイトのバックアップ時に、カラム削除したテーブルがあると、そのテーブルのデータを正しくリストアすることが出来ない。
特に、これは別サイト間で tgwar を移すときに発生する。
原因は
- Tuigwaa 上でのカラム削除はTgwEntity 情報からは、そのカラム情報は削除されるが、
実テーブル上のカラム削除はせず、カラムは残ったままになる。 - サイトバックアップ機能でのバックアップは、ローレベルの (DatabaseMetadata) からテーブル名を取得し、SELECT * をすることにより、CSV を生成している。
- サイトアップロードでは、model.ecore の情報から新たにテーブルが作成されるため、論理削除されたカラムは、新しいテーブルには存在しないが、CSVファイルには、元のサイトで削除されたカラム分のデータが存在するため、insert 文の発行時に不整合が起きる
バックアップ時に、SELECT * で CSV を作成するのではなく、適切なカラム情報を持ってバックアップすることにより解決すると思われる。