フォームでのデータベース

フィールドの dbConfig がデータベースを指定する方法と、古いフォームの互換性

  1. データベースの指定
  2. 7.5.0 より前に書かれたフォーム
  3. dbConfig の形式
  4. データベースを照会するフォーム

データベースの指定

query を持つフィールドは、 dbConfig が指定するデータベースでそのクエリを実行します。

- name: datacenter
  type: enum
  dbConfig: cmdb            # a database of Connections > Databases
  query: select name from cmdb.datacenter

7.5.0 からは、名前は次の順序で検索されます。

順序 名前が指すもの クエリの接続に使うもの
1 接続 > データベース のデータベース そのデータベースが指定する認証情報
2 それ以外は 接続 > 認証情報 にある種類が データベース の認証情報 その認証情報。7.5.0 より前と同じ

データベースの種類(MySQL、MSSQL、PostgreSQL、Oracle、MongoDB)は認証情報から取得されるので、フォームで指定することはありません。 種類のない認証情報は MySQL として読み込まれます。


7.5.0 より前に書かれたフォーム

dbConfig で認証情報を指定していたフォームは、すべて変更なしで動作し続けます。

7.5.0 へのアップグレード は、データベースの認証情報ごとに同じ名前でその認証情報で接続するデータベースを 作るので、フォームが指定する名前はまずデータベースを見つけ、同じログインにたどり着きます。同じ名前のデータベースがない種類がデータベースの 認証情報は、引き続き手順 2 で見つかります。

アップグレードが行うように、データベースと認証情報は同じ名前を共有できます。その場合はデータベースが優先されます。データベースを別の 認証情報に向けると、その名前を指定するすべてのフォームがそれに従います。これにより、フォームを編集せずに別のサーバーへ移せます。


dbConfig の形式

dbConfig がこれまで受け付けてきた三つの形式は引き続き動作し、それぞれの名前は上記のとおり検索されます。

dbConfig 例 動作
名前 dbConfig: cmdb そのデータベースを照会します
名前のリスト dbConfig: [cmdb-eu, cmdb-us] それぞれでクエリを実行し、結果を結合します。重複は削除されません
オブジェクト(レガシー) dbConfig: { name: cmdb, type: mysql } データベースまたは認証情報 name を照会します。非推奨です。名前だけを使ってください

dbConfig: secret:vault:secret/cmdb/db のような シークレットストア の参照は、 データベースの名前でも認証情報の名前でもないので、これまでどおりストアから読み込まれます。


データベースを照会するフォーム

アプリはフォームを読み取り、どのフォームが各データベースを照会しているかを判断します。

データベースページ の 使用元 列はそれらを数え、 データベースのページ の 使用元 タブは それらをフィールドとともに一覧表示します。データベースの代わりにその認証情報を指定しているフィールドも数えられます。データベースの名前は、 古い名前を指定しているフォームを変更してから変更してください。