フリーの情報共有ツール「Knowledge」旧バージョン(1.8.1)からの最新バージョンへのデータ移行をpg_dumpで行った備忘録

IT系の業界に20年。若い頃は諸先輩方の汗と涙の結晶である手順書を参考に作業を行なっていました。今思えば情弱でした。

現在は手軽にナレッジを公開できるブログやCMSが生まれ個人でも情報を発信するのにコストがかからなくなりましたね。

しかし、オープンな情報共有はネットで公開しても問題ないですが、デリケートな情報を共有するにはどうだろう?そこでオープンソース(フリー)の「Knowledge」の登場です。純国産と言っていいでしょうね。本当に素晴らしいです。

 

既に導入済みだったりします。社内で運用するシステムのナレッジとして利用しております。

素人でも出来た構築

正直に言えば動けば良いと思って構築していたので後先は考えなかった。インストールの手順は残してあったのですが、それだけでは動きませんでしたけど・・・ まぁ 私の仕事はこんなもんです。社内の「Knowledge」はクラウド環境で稼働しています。諸事情がありクラウドから社内のオンプレ環境に移す事になってしまったのです。

旧バージョンからの移行に苦労する

結果から言えばクラウド側Postgres SQLのKnowledge用データベースのダンプを取得してオンプレ環境のPostgres SQLにリストアしただけですが、私が見様見真似で構築した環境だと色々手間取った。

移行手順(非公式)

knowledgeをv1.8.1から最新v1.12.0へバージョンアップした際の備忘録

旧環境:クラウド
OS:Centos7
Ver:knowledge v1.8.1
Tomcat8+httpd(Apache)でリバースプロキシ

新環境:オンプレ(Hyper-V)
OS:Centos7
Ver:knowledge v1.20.0
Tomcat8

手順
旧サーバ(クラウド)のPostgrresSQL knowledgeデータベースを丸ごとdumpする。

pg_dump knowledge > knowledge.sql

 

新サーバ(オンプレ)でknowledgeの配備まで完了させておく手順は公式もしくはこちらのtomcatの自動起動とhttpd(apache)を連携前までです

wget https://github.com/support-project/knowledge/releases/download/v1.20.0/knowledge.war
sudo mv knowledge.war /opt/apache-tomcat/apache-tomcat-8.5.24/webapps
sudo service tomcat restart

新サーバ(オンプレ)でknowledgeにアクセスする

http://XXX.XXX.XXX.XXX:8080/knowledge/

ID:admin パスワード:admin123 でログインしてみる

新サーバ(オンプレ)にPostgresSQLをインストールする

sudo yum list | grep postgres

wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpm
sudo rpm -ivh pgdg-centos95-9.5-3.noarch.rpm
sudo yum install postgresql95 postgresql95-server postgresql95-devel postgresql95-contrib
psql --version
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb

sudo systemctl start postgresql-9.5
sudo systemctl enable postgresql-9.5

リッスンポートの設定をコメントアウトして有効化

sudo cp /var/lib/pgsql/9.5/data/postgresql.conf /var/lib/pgsql/9.5/data/postgresql.conf.org
sudo vi /var/lib/pgsql/9.5/data/postgresql.conf
listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)

 

認証設定を変更する 基本的にローカルからのアクセスは信頼させる

sudo cp /var/lib/pgsql/9.5/data/pg_hba.conf /var/lib/pgsql/9.5/data/pg_hba.conf.org
sudo vi /var/lib/pgsql/9.5/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust

 

sudo systemctl restart postgresql-9.5

postgresユーザをDBに登録する

su - postgres
-bash-4.2$ psql
psql (9.5.5)
Type "help" for help.

ALTER USER postgres PASSWORD 'postgres';
CREATE USER knowledge PASSWORD 'knowledge';
ALTER ROLE knowledge WITH SUPERUSER CREATEDB CREATEROLE;

 

JDBCのダウンロードと設定

cd /usr/share/java
wget https://jdbc.postgresql.org/download/postgresql-42.1.3.jar

サーバ再起動

knowledgeの画面→システム設定→データベースの接続先変更
データベースの接続先変更
× Information 現在、カスタム設定が有効になっています
org.postgresql.Driver(9.3-1103-jdbc41)
URL
jdbc:postgresql://localhost:5432/knowledge
user postgres
password postgres
schema public
max connection 0
auto commit false

 

タイトルとURLをコピーしました