プリザンターでER図を作成する①＜デモデータ準備編＞

本記事は、[OSSのノーコード・ローコード開発ツール「プリザンター」 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pleasanter) の5日目の記事です。

## 概要
データベース情報からスキーマ定義やER図を出力してくれる [SchemaSpy](https://schemaspy.org/) を使ってプリザンターのER図を作成します。最終的にプリザンターから以下のようなER図を作成することを目指します。

SchemaSpyの出力イメージ（ER図）
https://implem.github.io/PleasanterERD/schemaspy/relationships.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/4b815738-b876-97a0-e6db-9c87fcc36adf.png)

本記事は全3回に分けて連載予定の第1回となります。今回はプリザンターのデモデータ準備について記載します。

### 試した環境
プリザンター 1.3.26.0（2022/12/5時点の最新版）
OS: Windows10
DB: SQL Server

### はじめに
プリザンターでは検証・評価のための [デモ環境](https://pleasanter.org/archives/1181) が用意されています。まだプリザンターを使ったことがなくてどんなものか知りたい場合はこのデモ環境で試してみるのが手っ取り早いのですが、デモ環境ではプリザンターのデータベースを直接参照・操作することができません。そこで、今回はローカル環境に構築したプリザンターにデモデータを作成します。すでにプリザンターを導入済みで、デモデータではなく作成済みのテーブル情報をER図にしたい場合は本記事に記載している作業は不要です。

### 事前準備
以下のマニュアルを参考にプリザンターをインストールします。今回の記事ではプリザンターをWindows 10（データベースはSQL Server）にインストールする前提で進めます。

https://pleasanter.org/manual/getting-started-pleasanter-windows10

### 作成手順
#### 1. パラメータ変更
プリザンターではパラメータ設定を変更することでデモデータを作成することができます。Service.jsonのパラメータ"Demo"をfalseからtrueに変更して保存します。その後、IISを再起動してください。

https://pleasanter.org/manual/service-json

```json:Service.json
{
    "Name": "Implem.Pleasanter",
    "TimeZoneDefault": "Asia/Tokyo",
    "DefaultPassword": "pleasanter",
    "DeploymentEnvironment": null,
    "WithoutChangeDefaultPassword": false,
    "DefaultLanguage": "ja",
    "AbsoluteUri": null,
    "MaxRequestBodySize": 30000000,
    "RequireHttps": false,
    "AnnouncementSiteId": 0,
    "ShowProfiles": true,
    "ShowChangePassword": false,
    "ShowStartGuide": true,
    "Demo": true,
    "DemoUsagePeriod": 60
}
```

**変更前**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/7bd6bc38-9a56-8d9a-3774-820047cafa94.png)

**変更後**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/1340bc65-1f43-a7c3-acbf-92923a85dc6c.png)

「デモ環境を見る」のフォームが表示されました。

#### 2. デモデータ作成
メールアドレスを入力して登録ボタンを押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/7766bd03-8d86-5705-c066-8fbdf49789b7.png)

「ログイン用のURLを送信しますので、しばらくお待ち下さい。」のメッセージが表示されることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/ba05bbfe-9858-a90c-0bc1-4c569f52d491.png)

これでプリザンターに新しいテナントとデモデータが作成されました。

:::note info
プリザンターからメールを送信するには下記マニュアルの設定が必要ですが、後述の手順により送信されたメール本文をデータベースから直接確認できるため、今回の目的を達成する上では設定不要です。
:::

https://pleasanter.org/manual/smtp-mail

#### 3. データベース確認
SSMSなどでSQL Serverに接続し、以下のSQLを実行してデモデータを作成したテナント環境のログイン情報を取得します。

```sql:デモデータを作成したテナント環境のログイン情報取得
SELECT *
  FROM [Implem.Pleasanter].[dbo].[OutgoingMails]
 ORDER BY [CreatedTime] DESC
```

https://pleasanter.org/manual/faq-view-outgoing-mail-log

レコード全体の取得結果イメージです。

**取得結果：レコード全体**
| ReferenceType | ReferenceId | ReferenceVer | OutgoingMailId | Ver | Host | Port | From                                    | To               | Cc   | Bcc                                     | Title               | Body                           | SentTime                | Comments | Creator | Updator | CreatedTime             | UpdatedTime             |
|---------------|-------------|--------------|----------------|-----|------|------|-----------------------------------------|------------------|------|-----------------------------------------|---------------------|--------------------------------|-------------------------|----------|---------|---------|-------------------------|-------------------------|
|               | 0           | 0            | 999            | 1   | NULL | 25   | Pleasanter.org \<support@pleasanter.org\> | hoge@example.com | NULL | Pleasanter.org \<support@pleasanter.org\> | プリザンター デモ環境のご利用について | デモ環境ご利用へのお申し込みありがとうございます。（以下略） | `yyyy-mm-dd hh:mm:ss.fff` | NULL     | 9999    | 9999    | `yyyy-mm-dd hh:mm:ss.fff` | `yyyy-mm-dd hh:mm:ss.fff` |

Body列を見ると、ログイン用のID/PWが記載されています。

**取得結果：Body列の詳細**
| Body                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| デモ環境ご利用へのお申し込みありがとうございます。<br/><br/>下記のURLにアクセスし、ID/PWでログインしてください。<br/><br/>http://{サーバー名}/<br/><br/>管理者ID<br/>ID: Tenant99_User1 PW: xxxxxxxxxxxxxxxx<br/><br/>一般ユーザID（19IDご利用いただけます）<br/>ID: Tenant99_User2 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User3 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User4 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User5 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User6 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User7 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User8 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User9 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User10 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User11 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User12 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User13 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User14 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User15 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User16 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User17 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User18 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User19 PW: xxxxxxxxxxxxxxxx<br/>ID: Tenant99_User20 PW: xxxxxxxxxxxxxxxx<br/><br/>デモ環境は60日間ご利用いただけます。<br/><br/>デモサイトは事前の告知なくメンテンスを実施する場合がありますので予めご了承ください。 |

#### 4. ログイン確認

さきほど確認した内容から管理者のIDとPWを入力してログインしてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/311ad035-6483-dc25-876d-a07186787e4e.png)

デモデータのテーブルが作成されていますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/9dbd58b0-6b56-6f84-3fc9-1f8ae0a03043.png)

レコードも無事に作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37295/8182ba28-58fd-af39-6b74-4a0c357c152b.png)

### おわりに
ローカル環境に構築したプリザンターでデモデータを利用してみたいときはお試しください。第2回の記事ではSchemaSpyの設定手順を公開予定です。

## 参考リンク
[- プリザンターを始めてみよう！](https://pleasanter.org/archives/1181)
[- プリザンターをWindows 10にインストールする](https://pleasanter.org/manual/getting-started-pleasanter-windows10)
[- パラメータ設定：Service.json](https://pleasanter.org/manual/service-json)
[- FAQ：プリザンターのメール送信ログを確認したい](https://pleasanter.org/manual/faq-view-outgoing-mail-log)
[- SchemaSpy • Database Documentation Built Easy.](https://schemaspy.org/)