3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MendixのDBの中身を直接見てみる

Last updated at Posted at 2019-01-05

MendixではデータをDomainModelという論理モデルっぽいかたちで定義していきますが、当然それは物理モデルとしてRDBのテーブルに展開されるわけです。
じゃあそのDBの中身を見るにはどうすればいいかと言うと、常にJDBCで単純につなげられるわけでは無くて、ケース別にそれぞれやり方があります。

別にそんなことしなくてもMendixでアプリは作れるんですが、例えば期待する検索結果が取れないときにデータが悪いのか作り方がまずいのかデバッグしたりのために、見方は知っておきたいのです。

ローカル実行しているアプリの場合

まずローカルで実行するときのDBの種類(PostgreとかOracleとかetc...)を確認します。
プロジェクトの「Settings」 → 「Configurations」タブでActiveにチェックがついている行のDatabase typeです。
アプリを新規作成したあと何も変えていなければ、デフォルトでBuilt-in databaseになっているはず。
db-1-1.png

Built-in databaseの場合

Built-in databaseとは何かというと、Mendix Desktop Modelerに同梱されている、HSQLDBです。
この場合、Modelerからビューアーを起動することができます。

Run Locallyしている状態で、「Console」ビュー → 「Advanced」 → 「Start built-in database viewer」を選択。
db-1-2.png

HSQL Database Managerが起動するので、ここで普通にSQLを実行することができます。
db-1-3.png

Built-in databaseじゃない場合

任意のDB(PostgreなりOracleなりetc...)を立ててアプリがそこを使うように設定した、ということですので、お好きなツールで接続するようにしましょう。
Modeler同梱のビューアーは使えません。

Mendix Cloud上のアプリの場合

Mendix Cloud上のDBに外部から直接JDBC接続することはできません。
じゃあどうするかというと、Mendix CloudにバックアップされているDBダンプをいったんダウンロードして、任意の環境にリストアしたものを見ることになります。
Mendix CloudのDBはPostgreSQLのため、あらかじめPostgreSQLの環境を用意しておきます。

Modeler右上の吹き出しマークをクリックして、Project Dashboardにアクセス。
db-1-4.png

Project Dashboardの左メニューから「Backups」をクリック → 取得済みのバックアップ一覧から任意の行を選んで、ダンプファイルをダウンロード → 用意してあるPostgreSQL環境にリストアして中身を見ます。
db-1-5.png

ところで上記のスクショは、SandBoxつまり無償環境のアプリのバックアップ一覧となります。
SandBox上のアプリは日次サイクルでデータバックアップが取られます。つまり、まさに今この時のデータをダウンロードして見てみたい、ということは出来ず、次のバックアップまで待つ必要があるのです。

有償環境の場合は、日次バックアップに加え、即時でバックアップを取得することができます。(上記の画面に「Create Backupボタン」がある)

この記事のつづき

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?