Pleasanter with PostgreSQL (.NetCore版) をバージョンアップ、CentOS8でやってみました。

# Pleasanter with PostgreSQL（.NetCore3.1版） バージョンアップ

公式に手順が公開されてたのでやってみました。
https://pleasanter.net/fs/publishes/1383602/edit

今回は　1.1.0.1　から　1.1.3.2　へのバージョンアップです。

**手順はこんな感じ**

* 新しいファイルの入手
* Pleasanterサービスの停止
* 既存ファイルバックアップ
* 新しいファイルの展開
* DBパスワード設定
* CodeDefiner実行
* DB以外の設定復元（必要な場合）
* Pleasanterサービス再開


## 新しいファイルを入手

```shell
[user01@cent8 ~]$ wget --content-disposition https://pleasanter.org/download/6475/
--2020-07-18 10:47:11--  https://pleasanter.org/download/6475/
pleasanter.org (pleasanter.org) をDNSに問いあわせています... 153.127.197.17
pleasanter.org (pleasanter.org)|153.127.197.17|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14000909 (13M) [application/zip]
`Pleasanter.NetCore_1.1.3.2.zip' に保存中

Pleasanter.NetCore_1.1 100%[===========================>]  13.35M   507KB/s 時間 20s

2020-07-18 10:47:32 (667 KB/s) - `Pleasanter.NetCore_1.1.3.2.zip' へ保存完了 [14000909/14000909]

[user01@cent8 ~]$
```

## 設定ファイルを退避した上でファイルを展開

面倒なので、ディレクトリ毎全部バックアップした上で新規に展開します。
設定ファイルが更新される事もあるようです。全て展開した上で必要なパラメタを再設定しましょう。

```shell
[user01@cent8 ~]$ sudo systemctl stop pleasanter
[user01@cent8 ~]$ sudo mv /web/ /web_20200718
[sudo] user01 のパスワード:
[user01@cent8 ~]$ sudo mkdir /web
[user01@cent8 ~]$ sudo unzip -q -d /web Pleasanter.NetCore_1.1.3.2.zip
```

参考）主に再設定が必要になるのはこれらのファイルではないかと思います。

|ファイル名|用途|
|:---|:---|
|/web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json|DB接続設定|
|/web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Mail.json|mailサーバ設定|
|/web/pleasanter/Tools/Reminder.py|reminder環境設定|

## DBパスワードの設定／及び初期化

5行目にDBパスワードを再設定し上で、CodeDefinerを実行します。

```shell
[user01@cent8 ~]$ sudo vi /web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json
      1 {
      2     "Dbms": "PostgreSQL",
      3     "Provider": "Local",
      4     "TimeZoneInfo": "Asia/Tokyo",
      5     "SaConnectionString": "Server=localhost;Database=postgres;UID=postgres;PWD=P@ssw0rd",
      6     "OwnerConnectionString": "Server=localhost;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD",
      7     "UserConnectionString": "Server=localhost;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD",
      8     "SqlCommandTimeOut": 600,
      9     "MinimumTime": 3,
     10     "DeadlockRetryCount": 4,
     11     "DeadlockRetryInterval": 1000
     12 }
[user01@cent8 ~]$ cd /web/pleasanter/Implem.CodeDefiner
[user01@cent8 Implem.CodeDefiner]$ sudo dotnet Implem.CodeDefiner.NetCore.dll _rds
<INFO> UsersConfigurator.Execute: Implem.Pleasanter_Owner
<INFO> UsersConfigurator.Execute: Implem.Pleasanter_User
<INFO> TablesConfigurator.ConfigureTableSet: Tenants
<INFO> TablesConfigurator.ConfigureTableSet: Demos
<INFO> TablesConfigurator.ConfigureTableSet: Extensions
<INFO> Tables.CreateTable: Extensions
<INFO> Tables.CreateTable: Extensions_deleted
<INFO> Tables.CreateTable: Extensions_history
<INFO> TablesConfigurator.ConfigureTableSet: Sessions
<INFO> TablesConfigurator.ConfigureTableSet: SysLogs
<INFO> TablesConfigurator.ConfigureTableSet: Statuses
<INFO> TablesConfigurator.ConfigureTableSet: ReminderSchedules
<INFO> TablesConfigurator.ConfigureTableSet: Depts
<INFO> TablesConfigurator.ConfigureTableSet: Groups
<INFO> TablesConfigurator.ConfigureTableSet: GroupMembers
<INFO> TablesConfigurator.ConfigureTableSet: Registrations
<INFO> TablesConfigurator.ConfigureTableSet: Users
<INFO> TablesConfigurator.ConfigureTableSet: LoginKeys
<INFO> TablesConfigurator.ConfigureTableSet: MailAddresses
<INFO> TablesConfigurator.ConfigureTableSet: OutgoingMails
<INFO> TablesConfigurator.ConfigureTableSet: Items
<INFO> TablesConfigurator.ConfigureTableSet: Sites
<INFO> TablesConfigurator.ConfigureTableSet: Orders
<INFO> TablesConfigurator.ConfigureTableSet: ExportSettings
<INFO> TablesConfigurator.ConfigureTableSet: Links
<INFO> TablesConfigurator.ConfigureTableSet: Binaries
<INFO> TablesConfigurator.ConfigureTableSet: Permissions
<INFO> TablesConfigurator.ConfigureTableSet: Issues
<INFO> TablesConfigurator.ConfigureTableSet: Results
<INFO> TablesConfigurator.ConfigureTableSet: Wikis
<INFO> TablesConfigurator.ConfigureFullTextIndex:
<INFO> PrivilegeConfigurator.Execute: Implem.Pleasanter_Owner
<INFO> PrivilegeConfigurator.Execute: Implem.Pleasanter_User
<SUCCESS> Starter.ConfigureDatabase: Database configuration has been completed.
<SUCCESS> Starter.Main: All of the processes have been completed.
[user01@cent8 Implem.CodeDefiner]$
```

## その他設定の復元

* Reminderやメールサーバなどの設定を行なっている場合、それらも再設定しましょう。

## Pleasanterサービス再開

```shell
[user01@cent8 Implem.CodeDefiner]$　sudo systemctl start pleasanter
```

これで、1.1.3.2へのアップグレードが完了です。
<img width="527" alt="スクリーンショット 2020-07-18 12.11.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/4e2d2b17-cb9a-8a6e-3781-ff58f2765245.png">