「ポストグレス」「ポストグレスキューエル」などとも読む。 オープンソース系RDBMS(Relational Database Management System) のひとつ。 最近のバージョンでは(SQL99の仕様に近い)オブジェクト指向リレーショナルデータベースとしての機能も充実してきており、その高機能さが特徴となっている。 同じオープンソース系RDBMSでも、機能よりも速度と扱いやすさを選んだMySQLとは対照的である。
本記事では、Pgpool-IIを使用してPostgreSQLの自動フェイルオーバーを実現する方法を紹介します。 Pgpool-IIとは 全体構成図 サーバー構成 PostgreSQL構築 PostgreSQLインストール Pgpool-II extensionsインストール Pgpool-II オンラインリカバリ設定 Primary PostgreSQLサーバー構築 Pgpool-II構築 Pgpool-IIインストール Pgpool-II設定ファイル編集 SSH公開鍵交換 Firewalld設定 Pgpool-IIサーバー Firewalld設定 PostgreSQLサーバー Firewal…
概要 PostgreSQL のドキュメントでは、バージョン14まで「定期的な VACUUM ANALYZE の実行」が推奨されていました。しかし、バージョン15からはその記載が変更され、autovacuum 機能の活用が強く示唆されています。本記事では、この変更の背景と実運用への影響について解説します。 バージョン14までの推奨事項 PostgreSQL 14 のドキュメントでは、以下のように記載されていました。 不要となった行を削除するため、実運用状態のデータベースに対しては定期的に(少なくとも毎晩)VACUUMを実行することを推奨します。また、テーブルに対して多数の行を追加/削除した後は、…
こちらの記事を書いているのは、2025年2月のことである。 データベース設計の手戻りが発生していて、データベース(PostgreSQL)の修正とVisual Studio2022のプロジェクト(C#)の修正をしていく手前である。すでに対象テーブルには、CSVアップロード機能でデータが存在している。手順を考える前に、行き当たりバッタリで作業を行っていった。①何はなくても、VS2022ソリューションプロジェクトのバックアップ②PostgreSQLのデータベースのバックアップこの記事では、PostgreSQLに焦点を当てて書いています!③対象テーブルを選択して、プロパティをクリック ④対象の項目に対…
はじめに キャリーケースさん...(今週のメダリスト) nikkieです... SQLAlchemyのsessionmakerについて掘り下げます。 どうやらトランザクションができるみたいなんですよね。 ※SQLModel・SQLAlchemyどちらも今はまだ初学者レベルですので、考え違いをしていたらやさしく教えてください! 目次 はじめに 目次 前回のPostgreSQLに同期接続 SQLAlchemyのsessionmakerでトランザクション サンプルスクリプト SQLModelにsessionmaker追加のissueが上がっているものの... まとめ 前回のPostgreSQLに同期…
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true }); はじめに こんにちは。TypeScript を使った開発をしている中で、drizzle という ORM ライブラリの存在を知り、気になったので使ってみました。 今回は DB マイグレーション用途で試してみたのでその内容を書きたいと思います。 本記事のソースコードは以下に配置してあります。自由にご使用ください。 github.com dr…
はじめに ホワイトデーにはアリをお返し🐜 nikkieです。 FastAPIで使うSQLModelの素振りです。 SQLAlchemyの知識も必要になってくるのですが、どちらも今はまだ初学者レベルですので、考え違いをしていたらやさしく教えてください! 目次 はじめに 目次 動作環境 SQLModelドキュメントのやり方(Session) SQLAlchemyのsessionmakerを試す 終わりに 動作環境 dockerコンテナでPostgreSQLを立ち上げます。 macOSでRancher Desktopを使っています。 % docker --version Docker version…
PostgreSQL をソースコードからインストールするには、事前に必要なソフトウェアパッケージを導入する必要があります。PostgreSQL のマニュアルには必要条件が記載されていますが、具体的なインストール方法までは示されていません。本記事では、以下の環境を想定し、必要なパッケージのインストール手順を示します。 Red Hat Enterprise Linux release 9.5 インストール時のベース環境として "Server" を選択する。 パッケージ管理コマンドとして dnf を使う。 PostgreSQL 17.2 postgresql-17.2.tar.gz からインストール…
概要 PostgreSQL では WITH 句(Common Table Expressions: CTE)を利用できます。WITH 句を使用すると、クエリ内で一時的なテーブルを定義し、それを後続のクエリで参照できます。これは複雑なクエリの構造を整理するのに役立ちます。本記事では、WITH 句が実行計画にどのような影響を与えるのかを、シンプルな例を用いて検証します。 検証環境 OS Red Hat Enterprise Linux release 9.5 DB PostgreSQL 17.2 PostgreSQL はソースコードからインストールし、デフォルト設定のまま使用しています。 検証内容…
背景 マルチテナント構成のシステムにて、APIサーバのバックエンドにsupabaseを利用する際、Row Level Security (以下RLS)を設定しておく必要があります。 各テーブルが team_id というフィールドを持っており、アクセスしたユーザーが所属する team_idと一致しているレコードのみにアクセスできるようにする、という使い方です。 このRLSの設定にて、躓いたところと解決法をメモしておきます。 ログインロールについて supabaseでは、デフォルトで用意されている postgres ロールを利用してDBにつなぐ方法が想定されています。 この postgresロール…
macにHomebrewでPostgreSQLをインストールした手順をメモしておく。 前提 事前確認 手順 確認 サービスの起動をする 接続をする データベースを作成して、テーブルを作成する サービスの停止をする 前提 環境は以下になる。 macOS Sequoia $ sw_vers ProductName: macOS ProductVersion: 15.2 BuildVersion: 24C101 Homebrew $ brew --version Homebrew 4.4.15 事前確認 インストールが可能なバージョンを確認する。 $ brew search postgresql =…