ForgejoのDBでPostgreSQLを利用する設定方法
以下のエントリでForgejoのセットアップをしましたが、
Databaseにsqliteを利用していたので、
このエントリではPostgreSQLに変更する手順を示します。
UbuntuLinuxにForgejoをセットアップする手順 https://takemikami.com/2024/03/18/UbuntuLinuxForgejo.html
この手順は、以下の内容を参考にしています。
PostgreSQL | Database Preparation | Forgejo
https://forgejo.org/docs/latest/admin/database-preparation/#postgresql
試した環境:
- Ubuntu Linux 22.04.3
- Forgejo 1.21.7
- PostgreSQL 14.11
PostgreSQLのセットアップ
PostgreSQLのセットアップをインストールします。
sudo apt-get install postgresql
PostgreSQLのステータスを確認します。
sudo systemctl status postgresql
DBの設定 (PostgreSQLにDB/Roleを作成)
PostgreSQLにpostgresユーザで接続します。
sudo su - postgres
psql
PostgreSQLにデータベースを作成、権限追加を行います。
CREATE ROLE forgejo WITH LOGIN PASSWORD '{forgejoユーザのパスワード}';
CREATE DATABASE forgejo WITH OWNER forgejo TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'C.UTF-8' LC_CTYPE 'C.UTF-8';
EXIT
データベースへの接続を確認します。
psql -U forgejo -d forgejo -h localhost
Forgejoの設定 (ForgejoからPostgreSQLを参照する設定)
Forgejoの設定ファイルを開き、
databaseの接続先をpostgresqlに変更します。
custom/conf/app.ini の変更点
[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = forgejo
USER = forgejo
PASSWD = `{forgejoユーザのパスワード}`
SCHEMA =
SSL_MODE = disable
LOG_SQL = falsee
ここでは、既存のデータをすべて削除することにします。
既存データが必要な場合は、事前にバックアップを取っておいてください。
rm -rf /var/lib/forgejo/data/*
設定ファイルを修正したら、forgejoを再起動し反映します。
sudo systemctl restart forgejo
ここでは、データは全て削除しているので、
管理者ユーザの登録から実施します。
その後、PostgreSQLに、
Forgejo関連のテーブルが作成されているのを確認しておきます。
psql -U forgejo -d forgejo -h localhost
> select * from pg_tables where tableowner='forgejo';
以上。