SQL ServerやOracle Databaseなどの外部データベースをリンクテーブルとして使用している場合は、データの本体は外部データベース側にあり、開発環境にはデータベース構造のみ保持しています。外部データベース側の構造に変更があった場合、開発環境のデータベース構造を更新する必要があるため、Forguncyで既存プロジェクトを開き、リンクテーブルのテーブル名を右クリックして「最新情報の取得」を行って開発環境のデータベース構造を最新の状態に更新します。この状態でアプリケーションを発行するを参照して発行してください。この時「サーバー上にあるデータベースを変更する」のチェック状態に関係なくテーブルの固有レコードの識別子などの設定情報を含め、サーバー上のアプリケーションが更新されます。
アプリケーションの運用が始まり、サーバーのデータベースにデータが蓄積されているアプリケーションを更新する場合、アプリケーションの再発行時にサーバーのデーターベースを上書きするのか、あるいはマージするのかを指定して配置ができます。この指定は、Forguncy内部データベースの場合に有効です。
・上書きすると、アプリケーションの更新と共にサーバーのデータベースは開発環境のデーターベースに置き換わります。
・マージすると、アプリケーションの更新と共にテーブル構造をマッピングさせて、差分を統合させた移行が行えます。
1 「サーバー上にあるデータベースを変更する」にチェックします。
●オンラインで更新する場合
開発環境と運用環境がネットワークを介して接続されている場合、「アプリケーションを発行する」の手順で発行を行います。その手順2で、「サーバー上にあるデータベースを変更する」にチェックして、本ページで説明している内容を参照してデーターベースのマージ方法を指定してください。
●オフラインで更新する場合
「オフラインでアプリを配置する」の「パッケージファイル(FGCPBSファイル)を配置する」の手順で発行を行います。その手順6で、「サーバー上にあるデータベースを変更する」にチェックして、本ページで説明している内容を参照してデーターベースのマージ方法を指定してください。
2 「すべて上書き」か「構造変更の反映」を選択します。
●「すべて上書き」を選択した場合
アプリケーションの更新を行い、サーバー上の内部データベース(テーブル構造とテータ)は開発環境の内部データーベースに置き換わります。サーバー上で蓄積されていたデータはなくなりますので注意してください。
●「構造変化の反映」を選択した場合
アプリケーションの更新を行い、内部データベースをマージできます。サーバー上の内部データベース(テーブル構造)は、開発環境の内部データベースのテーブル構造とマッピングした設定に置き換わります。サーバー上で蓄積されていたデータは保持されます。置き換わる際に安全のためにバックアップを自動的に行うようにするには「自動バックアップ(データベースマージ時)」の設定を行ってください。
「構造変化の反映」を選択するか、「テーブル構造のマッピング設定」ボタンをクリックすると次の画面が表示されるので、ここでマッピングを設定します。なお、ビューは項目としては表示されませんが、更新されたビューは自動的に反映されます。
・画面上部には、[すべての項目]と[差分項目]という2つのオプションがあり、表示する項目を切り替えることができます。
・画面左側には開発環境のデータベーススキーマ、画面右側にはサーバー環境のデータベーススキーマが表示されます。
・テーブルとフィールドはツリー構造で表示でき、[すべて展開]と[すべて折りたたみ]で列の表示を切り替えできます。
同じ名前のテーブルとフィールドが自動的に対になるように表示されます。
対応するテーブルやフィールドがない場合、背景色が赤色で表示されるので、右側のコンボボックスから選択して、サーバー側のデータベース構造をどのように変更するかマッピング設定を行います。
背景が赤色の項目がなくなった状態で「OK」をクリックすると、設定したマッピング情報が保存されます。
設定したマッピング情報を再編集する場合、「テーブル構造のマッピング設定」ボタンをクリックします。アプリケーション名を変更したり、「サーバー上にあるデータベースを変更する」にチェックした画面を閉じたりすると、設定したマッピング情報はリセットされます。このため、マッピング情報を設定したら、発行処理を完了させてアプリケーションとデータベースを更新してください。
テーブル名に対するコンボボックスから「(新規作成)」あるいは「(新規作成し、データも移行)」を選択すると、そのテーブルのすべてのフィールドが「(新規作成)」に設定されます。
背景色が赤色の未設定の項目に変更を加えると、設定済みとみなされ背景が白になります。
テーブル構造に変更を加えると、右側に編集済みを意味する「鉛筆マーク」のアイコンが表示されます。
「!(エクスクラメーションマーク)」のアイコンは、以下の3つの場合に表示されます。
フィールドのデータ型が異なる場合。
データの不整合が起こりデータが失われる可能性があります。
Forguncyのデータ型は、データベースのデータ型と以下の表のようにマッピングされます。
Forguncyのデータ型 |
データベースのデータ型 |
---|---|
テキスト |
string |
整数 |
long |
小数 |
double |
日付 |
double |
時刻 |
double |
Yes/No |
long |
ユーザーアカウント |
string |
画像 |
string |
添付ファイル |
string |
開発側のデータベースの項目に一意の制約が設定されているとき、対になるサーバー側のデータ項目が一意の制約を満たさない可能性がある場合。発行が失敗する可能性があります。
必須となる一意の制約が正しくない場合。