WAGBY11 MANUAL / 26
データベースの接続先を設定する
アプリケーションが保存・検索に使うDB製品と接続先を設定できます。標準のH2を使う場合と、外部データベースを使う場合の準備、接続情報とデータ移送の考え方を説明します。
最終更新日:
1. このページで伝える機能
アプリケーションが保存・検索に使うDB製品と接続先を設定できます。標準のH2を使う場合と、外部データベースを使う場合の準備、接続情報とデータ移送の考え方を説明します。
2. Wagby11で実現できること
2.1 標準のH2と外部データベース
DB設定を省略すると、標準のH2を使います。外部データベースとしてPostgreSQL、MySQL、Oracle Database、SQL Serverを指定できます。利用するDBの対応バージョンや構成は、参考資料で確認します。
| DB | database.type |
|---|---|
| H2(標準) | h2 |
| PostgreSQL | postgresql |
| MySQL | mysql |
| Oracle Database | oracle |
| SQL Server | sqlserver |
2.2 外部データベースを使う場合
DB管理者と利用する製品・接続先・DB名・スキーマを決め、必要なDBやスキーマ、接続ユーザーと権限を準備します。対応するバージョンを指定し、接続先のDB製品・バージョンと一致させます。
2.3 接続先と認証情報を指定する
ルートのappschema.yamlにdatabaseを定義します。environmentの配下やモデルごとの設定ではありません。接続URLはjdbcUrl、スキーマは必要に応じてschemaに指定します。スキーマ名を指定するだけではスキーマは作成されません。
DBのユーザー名とパスワードはOS環境変数から読み取ります。このページの設定例では、次の2つの環境変数をREST APIを起動するOS環境に設定します。
| 環境変数名 | 設定する値 | AppSchemaでの指定 |
|---|---|---|
WAGBY_DB_USERNAME | 接続するDBのユーザー名 | usernameEnv: WAGBY_DB_USERNAME |
WAGBY_DB_PASSWORD | そのDBユーザーのパスワード | passwordEnv: WAGBY_DB_PASSWORD |
usernameEnvとpasswordEnvには値そのものではなく、読み取る環境変数名を指定します。環境変数名は変更できますが、OS側とAppSchema側で一致させます。外部DBを使う場合、指定した環境変数が未設定だとREST APIは起動エラーになります。パスワードの値はAppSchemaやAIへの指示に記載せず、OS環境へ設定します。
MySQLではスキーマはデータベース名に相当します。SQL ServerではDB名とスキーマ名は別で、接続ユーザーの既定スキーマも合わせて準備します。DBごとの接続条件は参考資料を確認します。
2.4 DBを切り替えるときはデータ移送も計画する
設定後は再生成してDBに合うDDLを用意し、REST APIを起動して接続とスキーマを確認します。稼働中のDBから切り替える場合は、元DBと生成済みDDLをバックアップし、移行先のスキーマ作成とデータ移送を分けて進めます。接続先の変更と再生成だけでは、データは移りません。
AIと相談し、バックアップ・スキーマ作成・データ移送・検証の手順を決めます。データ移送後は件数・主キー・参照関係・日本語などの値、登録・検索・更新・削除を確認します。元データを保持した状態で移行の結果を検証します。
暗号化はDBの通信と保存データを暗号化する、接続数や待ち時間はDB接続プールと待ち時間を設定するを参照してください。
3. AIへの指示例
最小限の指示例
外部DBとしてPostgreSQLを使う構成にしてください。AIは既存のDB設定、対応バージョン、接続URL、スキーマ、認証情報の参照方法を確認します。正規のライセンスキー、DB側の準備状況、既存データを移す必要があるかを伝えます。この短い指示だけで、次の詳細例と同じ設定になるとは限りません。
より詳細な指示例
Wagby11のguideと必要なreferenceを確認してください。
正規のライセンスキーを用意した環境で、PostgreSQLを使うdatabase設定をルートへ追加してください。試用版ではH2を使う条件を維持してください。
接続先はdb.example.jp、ポート5432、DB名wagby、スキーマwagbyとする例を作り、実際の接続先とDBのメジャーバージョンはDB管理者へ確認してください。
DBユーザー名はWAGBY_DB_USERNAME、パスワードはWAGBY_DB_PASSWORDから読み取ってください。
DB管理者がスキーマと必要な権限を準備する前提で、TLSと証明書検証を行う構成にしてください。
既存データがある場合は、接続先を切り替える前にバックアップ・スキーマ作成・移送・検証の手順を示してください。設定変更だけでデータが移ると扱わないでください。
既存のモデル・主キー・固定ID・データ・権限と、関係のない設定を保持してください。接続情報や秘密値を原稿・コードへ埋め込まないでください。設定の検証・必要な再生成・起動確認を行い、変更内容と確認結果を説明してください。4. 編集されるAppSchemaの例
次はDB設定の参考例です。構文を覚えなくても、利用するDBと接続・運用の条件をAIへ伝えられます。
database:
type: postgresql
version: "17"
jdbcUrl: jdbc:postgresql://db.example.jp:5432/wagby
usernameEnv: WAGBY_DB_USERNAME
passwordEnv: WAGBY_DB_PASSWORD
encoding: UTF-8
schema: wagby
connectionEncryption:
enabled: true
properties:
sslmode: verify-full
sslrootcert: /etc/wagby/postgresql-ca.pemこの例のversionはPostgreSQLのメジャーバージョンです。実際のDBに合わせます。URL・スキーマ・証明書パスも配備先に合わせ、環境変数の値は別途設定します。
5. 参考資料
- guide:データベース接続
designer/docs/appschema/html/guide/02-environment/02-database.html- reference:データベース設定
designer/docs/appschema/html/reference/25-database.html