Database Upgrade(データベースアップグレード)エラー
Database Upgrade
エラーは、以下の状況で発生します。
-
Failed to convert site property <site property> from data type <type> to data type <type>
Siteプロパティのデータ型を変更しようとしていますが、データベースがこの変換をサポートしていません。この問題は、モジュールがこのSiteプロパティとともにパブリッシュされており、データ型に互換性がない場合にのみ発生します。
-
Could not find database column for <attribute> attribute
<attribute>
アトリビュートがデータベース内で直接削除または変更されており、エンティティ定義がデータベース内で定義したテーブルと一致しません。以下のいずれかの手順を実行します。
- アトリビュートをエンティティ定義から削除する。
- モジュールの指定どおり、データベーステーブルに列を追加する。
-
Could not create/change primary key in <table> table.Inconsistent database table and entity primary key definitions
<table>
テーブルに対応するエンティティの主キーを変更しようとしていますが、データベース制約があるため変更できません。たとえば、主キーとして設定しようとしているアトリビュートの値が重複しているとします。エンティティを編集し、主キーを適切なアトリビュートに変更します。以下のいずれかの手順を実行します。
- アトリビュートをエンティティ定義から削除する。
- モジュールの指定どおり、データベーステーブルに列を追加する。
-
A single tenant entity cannot be upgraded to a multi-tenant entity after it has been created in the database (Entity <entity>, database table <table>)
対応するテーブルをデータベース内に作成した後に、シングルテナントエンティティをマルチテナントエンティティにアップグレードしようとしています。
-
Could not change the <attribute_name> attribute from <old_type> to <new_type>, since existing records could not be converted to <new_type>.Either rename <attribute_name> (data will remain in the database, but not accessible from your application) or create a procedure that handles the records with values that cannot be converted.Press F1 for more information
アトリビュートの種類を変更しようとしていますが、新しいデータ型に自動的に変換できないデータがすでにそのアトリビュートに含まれています。
以下のいずれかの手順を実行します。
a) アトリビュート名を変更します。このエラーの後にアトリビュート名を変更すると、OutSystemsはデータベーステーブル内に新しい空の列を作成し、以前の列ではなくこの新しい列を使用し始めます。古い列とデータはテーブル内に保持されますが、開発環境では表示されません。たとえば、スクリプトを使用してデータベースに直接アクセスすると、古いデータを取得することができます。
b) 変換を妨げているレコードを移動または削除するために、アプリケーションのパブリッシュ時に1回だけ実行されるタイマーを作成します。
別の環境にアプリケーションをデプロイした後、必ず同じソリューションを適用してください。
発生したエラーがどの状況にも一致しない場合は、データベース管理者に考えられる原因を確認してください。