以下のエントリで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';

以上。