Tag
postgresql
PostgreSQL を使う前提のローカル開発やテスト環境の整え方をまとめています。
Latest
最近の記事から読む
新しく追加した記事から、このタグの話題をたどれます。
PHPで使い切りファイル共有のライフサイクルを設計する(条件付きUPDATEの状態機械とcronなしGC) 使い切りファイル共有の後始末を、active→consumed→purged の一方向の状態機械で設計する。二重ダウンロードを防ぐ条件付きUPDATEの確定、実体を消せたときだけ状態を進める自己修復GC、削除失敗行のバックオフ、cronが無い環境向けのアクセス時GCをテスト付きで示す。Related
関連タグ
同じ記事に出てきやすいテーマをまとめています。
Posts
postgresql の記事一覧
このタグが付いた記事を、新しい順に並べています。
-
PHPで使い切りファイル共有のライフサイクルを設計する(条件付きUPDATEの状態機械とcronなしGC)
使い切りファイル共有の後始末を、active→consumed→purged の一方向の状態機械で設計する。二重ダウンロードを防ぐ条件付きUPDATEの確定、実体を消せたときだけ状態を進める自己修復GC、削除失敗行のバックオフ、cronが無い環境向けのアクセス時GCをテスト付きで示す。
-
PHPで有効期限付き共有リンクを設計する(URLを知られただけではダウンロードさせない)
PHPで有効期限付きの共有リンクを設計する。random_bytes(32)のトークンは共有の識別までに限定し、ダウンロードの可否はOTP検証済みセッションへのグラントに束ねる。URLが漏れても本人確認なしでは取れない設計をテスト付きで示す。
-
PHPでワンタイム認証キー(OTP)を自作する(HMAC + pepper + 原子的UPDATE)
PHPで6桁のワンタイム認証キーを自作する最小構成。random_intでの生成、DBにはHMAC-SHA256+pepperのハッシュだけを保存、試行回数の上限を原子的UPDATEで安全に数える設計をテスト付きで示す。
-
PostgreSQLの外部キー:RESTRICT と NO ACTION は何が違うのか
PostgreSQL の外部キーで `RESTRICT` と `NO ACTION` は何が違うのかを、既定では同じに見えて `DEFERRABLE INITIALLY DEFERRED` のときだけ差が出ることを `psql` の実行結果で確認する。
-
PostgreSQLの制約を確認する・冪等に張り直す(\d / pg_constraint / DROP CONSTRAINT IF EXISTS)
PostgreSQL の制約を `\d` と `pg_constraint` で確認し、`DROP CONSTRAINT IF EXISTS` で何度流しても壊れない形に張り直す書き方を psql の実行結果で確認する。
-
PostgreSQLで「current transaction is aborted」が出たときに何が起きているか
PostgreSQL 17で、明示的なトランザクション中にSQLが1文失敗すると、後続のSELECTまでSQLSTATE 25P02で拒否される。その仕組みを pg_stat_activity で確かめ、ROLLBACK / COMMIT / SAVEPOINT での抜け方と、放置したセッションがロックを握る条件までpsqlの実測で追う
-
PostgreSQLで「特定の値だけ重複を許す」ユニーク制約(部分ユニークインデックス)
PostgreSQL で「未削除の行だけ一意」を成り立たせる部分ユニークインデックスを、素の UNIQUE で詰まる所と複合 UNIQUE の NULL 落とし穴から `psql` の実行結果で確認する。
-
GitHub Actionsで docker compose を使うPHP CI(PostgreSQL付き)
ローカルの Docker Compose 構成をそのまま GitHub Actions に載せ、PostgreSQL 付き PHPUnit を CI で再現できるようにする。
-
PHP + Docker で非同期ジョブを動かす最小構成(PostgreSQL キュー)
PHP と Docker で PostgreSQL キュー用の常駐ワーカーを作り、起動、停止、並列実行、取り残し確認の入口までを最小構成で整理する。
-
PostgreSQLのstuck job回収設計(timeout / reclaim / 再実行の安全な流れ)
PostgreSQL のジョブキューで processing のまま残った job を、timeout 判定・reclaim 条件・再実行の安全策まで含めて整理する。
-
PostgreSQLのマイグレーション設計(列追加・データ移行・切り替えの安全な流れ)
既存テーブルに新しい列を追加し、backfill と整合性確認を経て安全に read/write を切り替える PostgreSQL migration の順番を整理する。
-
PHP + PostgreSQLでジョブキューを作る(FOR UPDATE SKIP LOCKED 最小構成)
PHP(PDO)から PostgreSQL のテーブルをジョブキューとして使い、`FOR UPDATE SKIP LOCKED` で複数ワーカーから安全に 1 件ずつ取る流れと最小リトライを再現する。
-
PHP + PostgreSQLで在庫引当を安全に実装する(SELECT ... FOR UPDATE 最小構成)
PHP(PDO)から在庫引当の二重処理を再現し、`SELECT ... FOR UPDATE` で防ぐ流れと PostgreSQL の待ち方を最小構成で確認する。
-
EXPLAIN ANALYZEの結果から改善策を選ぶ(Sort / Join / Aggregate ごとの打ち手)
EXPLAIN ANALYZE の Sort / Join / Aggregate を見て、まずどこを疑い、どの改善策から当たるかを SQL と実行計画の例で整理する。
-
遅いSQLをどう見るか(EXPLAIN ANALYZEでボトルネックを読む)
PostgreSQL の遅い SQL を EXPLAIN ANALYZE で観察し、rows / actual time / loops を手掛かりに sort / join / aggregate のどこが詰まっているかを読む順番まで整理する。
-
PostgreSQLのインデックス入門(B-tree と EXPLAIN ANALYZE の最小例)
PostgreSQL で B-tree インデックスを作る最小例を通して、Seq Scan と Index Scan の違いを EXPLAIN ANALYZE で確認し、効く条件と効かない条件の入口まで整理する。
-
PostgreSQLのトランザクション入門(BEGIN / COMMIT / ROLLBACK と同時更新)
PostgreSQL の `BEGIN` / `COMMIT` / `ROLLBACK` を送金デモで確認し、同時更新で `BEGIN` だけでは足りない場面まで `psql` で再現する。
-
PostgreSQLの外部キーと削除ルールを整理する(CASCADE / RESTRICT / SET NULL)
PostgreSQL の外部キーで `CASCADE` / `RESTRICT` / `SET NULL` をどう使い分けるかを、3 つの削除例と Mermaid 図で整理する。
-
PostgreSQLの制約入門(PRIMARY KEY / UNIQUE / CHECK / FOREIGN KEY)
PostgreSQL の `PRIMARY KEY` / `UNIQUE` / `CHECK` / `FOREIGN KEY` が何を守る制約かを、小さな受注スキーマの失敗例で整理する。
-
PostgreSQLでER図からテーブル設計する(Mermaid + CREATE TABLE最小構成)
Mermaid の ER 図から PostgreSQL の最小 `CREATE TABLE` を組み立て、4 表の関係を `psql` で確認する手順を整理する。
-
Slim 4 + PostgreSQLで認証付きREST APIを作る(JWT最小構成)
Slim 4 と PostgreSQL を使い、JWT 認証付き REST API の最小構成を register / login / me の 3 本で再現できる。
-
WSL2 + Docker + PHP + PostgreSQLで最小CRUDを作る
WSL2とDocker上で生PHPとPostgreSQLを使った最小CRUDを作り、DB付きアプリの流れを確認する。
-
PHPUnitでDBテストを始める(PostgreSQL + Docker)
PostgreSQLを使ったPHPのDBテストを最小構成で作り、失敗から安定化までの流れを確認する。
-
Windows 11で始めるPHPローカル開発環境(WSL2 + Docker + PostgreSQL)
Windows 11のWSL2とDockerとPostgreSQLを使って、PHPのローカル開発環境を最小構成で作る。