PostgreSQL– tag –
-
PostgreSQL 15のNULLS NOT DISTINCTで変わるUNIQUE制約とNULLの扱い
開発
こんにちは、バックエンドエンジニアの中山です。 今回はPostgreSQL 15から利用できる「NULLS NOT DISTINCT」オプションを紹介します。 【背景】 NULLS NOT DISTINCTについて調べ始めたきっかけは、UNIQUE制約がついているカラムに対し、UNIQUE 制約違反のエラーが発生したことでした。具体的には、「INSERT 前に SELECT で存在を確認し、なければ INSERT する」という実装により、意図しないタイミングで重複エラーが発生していました。 というのも、INSERT がコミットされる前に別のトランザクションが同じデー... -
【Tips】PostgreSQLで安全にNOT NULL制約を追加する
開発
こんにちは、バックエンドエンジニアの永井です。今回は本番運用されているPostgreSQLのテーブルのカラムに対して、安全にNOT NULL制約を追加する流れを書いていきます。 【背景】 以前、バックエンドの実装していたときに「このカラムはNOT NULL」と思い込んでコードを書いてしまい、インシデントを起こしてしまったことがありました。また、そのカラム以外にも意味的には必須なのに、NULL許容のままになっているカラムがいくつか見つかりました。テーブルのスキーマ定義をちゃんと確認することも大切ですが、NOT... -
PR TIMES’s Transformation of Ranking and Analytics Systems with Enhanced Logging
開発
Hello, I'm Duc, responsible for the optimization of our press release access logging system. I'm excited to share the transformative journey we embarked on, moving from a traditional log system that recorded every access in our database to a more streamlined and effective approach. 【Background】 Let's begin by examining the challenges we encountered with our previous logging system. Initially, it was a basic setup: each view of a press release page triggered the addition ... -
認証プロバイダーのパスワードカラムマイグレーション: MySQLからPostgreSQLへの移行の記録
開発
こんにちは、開発本部でインターンをしている田中です。 今回は企業ユーザーの認証を担っている認証プロバイダーのMySQLから、PR TIMESのPostgreSQLにパスワードカラムをマイグレーションしたので紹介します。 【経緯】 PR TIMESでは企業ユーザーの認証を行う認証プロバイダー(auth.prtimes.jp)が独自のMySQLを持っており、一部のデータがMySQLに保存されていました。 この認証プロバイダーはいくつかの問題から廃止を予定しています。 なのでまず認証プロバイダーのMySQLからPR TIMESのPostgreSQLにデータをマ... -
Zero Downtime Migration from self-managed Elasticsearch to AWS OpenSearch at PR TIMES
開発
Hello, I’m Duc, currently working on moving our on-premise Elasticsearch server to AWS OpenSearch Service. In this post, I will share how the old Elasticsearch server was replaced by a new one whose core is AWS OpenSearch Service. 【Introduction】 At the time I'm writing this blog, most of processes that require data from Elasticsearch have been replaced by the new AWS OpenSearch Service. But if we look back over the last few months, PR TIMES's search engine system was bas... -
PR TIMESをオンプレミスからAWSに移行しました
開発
こんにちは、開発本部インフラチームテックリードの櫻井です。 今回は2022年9月に行ったオンプレミスからAWSへの移行プロジェクトについて紹介したいと思います。 【オンプレ環境の抱えていた課題】 弊社の主力サービスである prtimes.jp はAWSなどのクラウドサービスではなく、自社サーバーをデータセンターに置くオンプレミスで運用してきました。 ほとんどのサーバーはVMware vShereを使って仮想サーバーとして構築されていましたが、データベース(PostgreSQL)だけは物理サーバーとして構築されていました。 こ... -
PostgreSQL で無停止リファクタリング 〜テーブルスキーマの変更〜
開発
こんにちは、バックエンドエンジニアの江間です。 プレスキットと呼ばれる機能の MVP(実用最小限の製品: Minimum Viable Product)のリリースから半年以上経ちました。さらなる機能追加のために、提供する機能の動作は変更せず、テーブルスキーマの変更のリファクタリングを行う事になりました。 この変更で API から呼び出している SQL も書き換える必要が出てきました。すると DB 側のテーブルスキーマの変更とアプリケーション側の変更を行う必要があります。 両方の変更を反映させるために、メンテナンスを入...
1
