<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Postgresql on kkato.dev</title>
    <link>https://kkato.dev/tags/postgresql/</link>
    <description>Recent content in Postgresql on kkato.dev</description>
    <image>
      <title>kkato.dev</title>
      <url>https://kkato.dev/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://kkato.dev/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.146.0</generator>
    <language>en</language>
    <lastBuildDate>Fri, 20 Feb 2026 15:00:00 +0900</lastBuildDate>
    <atom:link href="https://kkato.dev/tags/postgresql/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PostgreSQL Operatorの比較</title>
      <link>https://kkato.dev/posts/postgres-operators/</link>
      <pubDate>Fri, 20 Feb 2026 15:00:00 +0900</pubDate>
      <guid>https://kkato.dev/posts/postgres-operators/</guid>
      <description>&lt;p&gt;Kubernetes上でPostgreSQLを運用するためのOperatorが複数存在します。以前どれを選ぶか検討する機会があったので、主要な4つのオペレーターを比較してみました。&lt;/p&gt;
&lt;h3 id=&#34;比較表&#34;&gt;比較表&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/CrunchyData/postgres-operator&#34;&gt;PGO&lt;/a&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/cloudnative-pg/cloudnative-pg&#34;&gt;CloudNativePG&lt;/a&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/zalando/postgres-operator&#34;&gt;Zalando&lt;/a&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/ongres/stackgres&#34;&gt;StackGres&lt;/a&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;開発元&lt;/td&gt;
          &lt;td&gt;Crunchy Data&lt;/td&gt;
          &lt;td&gt;EDB / CNCF&lt;/td&gt;
          &lt;td&gt;Zalando&lt;/td&gt;
          &lt;td&gt;OnGres&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GitHub Stars&lt;/td&gt;
          &lt;td&gt;~4,400&lt;/td&gt;
          &lt;td&gt;~9,200&lt;/td&gt;
          &lt;td&gt;~5,200&lt;/td&gt;
          &lt;td&gt;~1,400&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ライセンス (Operator)&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
          &lt;td&gt;MIT&lt;/td&gt;
          &lt;td&gt;AGPL-3.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ライセンス (コンテナイメージ)&lt;/td&gt;
          &lt;td&gt;独自 (制限あり)&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
          &lt;td&gt;MIT&lt;/td&gt;
          &lt;td&gt;AGPL-3.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Patroni&lt;/td&gt;
          &lt;td&gt;使用&lt;/td&gt;
          &lt;td&gt;不使用 (独自実装)&lt;/td&gt;
          &lt;td&gt;使用 (Patroni開発元)&lt;/td&gt;
          &lt;td&gt;使用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CNCF&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;Sandbox&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;各オペレーターの特徴&#34;&gt;各オペレーターの特徴&lt;/h3&gt;
&lt;h4 id=&#34;pgo-crunchy-data&#34;&gt;PGO (Crunchy Data)&lt;/h4&gt;
&lt;p&gt;Crunchy Data社が開発するオペレーターで、Patroniを使ったHAに対応しています。Operator自体のソースコードはApache 2.0ですが、Crunchy Data が配布するコンテナイメージは独自のライセンス（&lt;a href=&#34;https://www.crunchydata.com/developers/terms-of-use&#34;&gt;Crunchy Data Developer Program&lt;/a&gt;）で提供されています。50名以上の組織では本番利用に有償サブスクリプションが必要になるため、注意が必要です。自前でイメージをビルドすれば回避できますが、手間がかかります。&lt;/p&gt;
&lt;h4 id=&#34;cloudnativepg&#34;&gt;CloudNativePG&lt;/h4&gt;
&lt;p&gt;EDBが開発を始め、現在はCNCF Sandboxプロジェクトになっています。Patroniに依存せず、独自のInstance Managerが各Pod内で動作し、Kubernetes APIを直接利用してリーダー選出やフェイルオーバーを行います。ライセンスもOperator・コンテナイメージともにApache 2.0で、制限なく利用できます。Star数も最も多く、コミュニティの勢いがあります。&lt;/p&gt;
&lt;h4 id=&#34;zalando-postgres-operator&#34;&gt;Zalando postgres-operator&lt;/h4&gt;
&lt;p&gt;Zalando社が開発するオペレーターで、Patroniの開発元でもあります。MITライセンスで制限なく利用可能です。Spilo（PostgreSQL + Patroni をパッケージングしたDockerイメージ）をベースにしています。ただし、CloudNativePGと比較すると開発のペースは落ち着いてきている印象です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PostgreSQL16をソースコードからビルドしてみる</title>
      <link>https://kkato.dev/posts/postgresql16-build/</link>
      <pubDate>Wed, 18 Sep 2024 14:47:07 +0900</pubDate>
      <guid>https://kkato.dev/posts/postgresql16-build/</guid>
      <description>&lt;p&gt;PostgreSQL16をソースコードからビルドしてみたのですが、いくつかつまづいたポイントがあるので、それらにご紹介します。&lt;/p&gt;
&lt;p&gt;PostgreSQL16をソースコードからビルドするためのコマンドは以下のとおりです。前提として M1 Mac (macOS 14.4.1) を使っています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% git clone git://git.postgresql.org/git/postgresql.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; postgresql
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% ./configure --enable-debug --enable-cassert --enable-tap-tests --prefix&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOME&lt;/span&gt;/pgsql &lt;span class=&#34;nv&#34;&gt;CFLAGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-O0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% make -j &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% make install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;configureコマンドには以下のオプションを指定しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デバッグしやすくするためのオプション: &amp;ndash;enable-debug &amp;ndash;enable-cassert &amp;ndash;enable-tap-tests&lt;/li&gt;
&lt;li&gt;インストール先のディレクトリを指定するオプション: &amp;ndash;prefix&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;参考: &lt;a href=&#34;https://www.postgresql.jp/document/16/html/install-make.html#CONFIGURE-OPTIONS&#34;&gt;https://www.postgresql.jp/document/16/html/install-make.html#CONFIGURE-OPTIONS&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;icu-uc-icu-i18nのパッケージが見つからない&#34;&gt;&lt;code&gt;icu-uc&lt;/code&gt;, &lt;code&gt;icu-i18n&lt;/code&gt;のパッケージが見つからない&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;icu-uc&lt;/code&gt;, &lt;code&gt;icu-i18n&lt;/code&gt;のパッケージが見つからないと言われました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% ./configure --enable-debug --enable-cassert --enable-tap-tests --prefix=$HOME/pgsql CFLAGS=-O0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(省略)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;checking for icu-uc icu-i18n... no
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;configure: error: Package requirements (icu-uc icu-i18n) were not met:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;No package &amp;#39;icu-uc&amp;#39; found
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;No package &amp;#39;icu-i18n&amp;#39; found
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Consider adjusting the PKG_CONFIG_PATH environment variable if you
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;installed software in a non-standard prefix.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Alternatively, you may set the environment variables ICU_CFLAGS
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and ICU_LIBS to avoid the need to call pkg-config.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;See the pkg-config man page for more details.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;PKG_CONFIG_PATHという環境変数を設定してあげれば良いみたいです。
以下のコマンドを実行すると、どう設定すればいいか教えてくれました。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
