「ポストグレス」「ポストグレスキューエル」などとも読む。 オープンソース系RDBMS(Relational Database Management System) のひとつ。 最近のバージョンでは(SQL99の仕様に近い)オブジェクト指向リレーショナルデータベースとしての機能も充実してきており、その高機能さが特徴となっている。 同じオープンソース系RDBMSでも、機能よりも速度と扱いやすさを選んだMySQLとは対照的である。
Rubyでpg gemを使って、postgresqlに接続してクエリの実行結果を見ていたところ、boolean型のカラムの戻り値がTRUEの場合にt、FALSEの場合にfとなる現象を確認しました。 CREATE TABLE test1 (a boolean, b text); INSERT INTO test1 VALUES (TRUE, 'sic est'); INSERT INTO test1 VALUES (FALSE, 'non est'); SELECT * FROM test1; a | b ---+--------- t | sic est f | non est 最初はpg側で…
こんにちは、最近腰痛が気になるゴマ太郎です。 本日は Django モデルの ForeignKey について解説します。 1. ForeignKey とは 1-1. モデルを紐づけるリレーションフィールド 1-2. ForeignKey は「一対多」の関係を持たせる 2. 前提条件 2-1. 環境 3. ForeignKey の使い方 3-1. models.py での書き方 3-2. 管理サイトで確認 確認に必要なコードの追記 管理サイト 3-3. on_delete の種類 4. 最後に 5. 参考 1. ForeignKey とは 1-1. モデルを紐づけるリレーションフィールド For…
はじめに PostgreSQL の設定には effective_cache_size というディスクキャッシュのサイズを指定できるパラメータがあります。このパラメータはディスクキャッシュを実際に確保するために利用されることはなく、推定目的でのみ利用されます。今回の記事では PostgreSQL がこのパラメータをどのように利用しているのか確認します。PostgreSQL 15 を対象に調査しています。 effective_cache_size の利用箇所 ソースコードから調査したところ、effective_cache_size は以下の2箇所で利用されていました。(1) インデックススキャンの…
はじめに こんにちは。dazyuです。ラクダとか貨物を載せて歩いてくれる家畜動物: 駄獣が元ネタです。最近LAMB/ラムという映画を見ました。 アイスランドが舞台とのことで、内容もさることながら雄大な自然を背景にしたシーン一つ一つが美しく、見て損はなかった作品でした。今回の投稿が初めてのブログになります。お手柔らかにお願いします。 はじめに 概要 環境 What is Gitea 構築するシステムの概説 構築作業 1. docker-compose.ymlの作成 2. dockerで環境立ち上げ 3. Giteaの設定 4. 動作確認 4.1. git clone 4.2. git push …
pgunconf.connpass.com 昼間に {MySQL のイベントにオフライン参加](https://hmatsu47.hatenablog.com/entry/2023/04/26/002834) したので、東京のホテルからの参戦、でした。 ホテルの回線環境が少し不安だったのですが、直前に jawsug-container.connpass.com にオーディエンスとして参加してみて概ね大丈夫だったので、安心して登壇(発表)参加できました。 今回のツイートのまとめはこちらです(ぬこさんありがとうございます)。 昨晩のPostgreSQLアンカンファレンスツイートまとめです。http…
こんにちは! 株式会社バトンズでエンジニアをしているyamafです。 エンジニアはマーケや営業からデータ集計の依頼を受けることがよくあるのではないでしょうか。 以下のようなデータ集計の依頼があった場合、皆さんどのように取得しますか? 企業別の新規ユーザー登録数を月毎に出してほしい。 期間は2022年10月から2022年12月まで。 その後のデータ分析の都合上、月毎に抜けもれなくカウントを出してほしい。 例えば、その月対象企業が登録がなかった場合でもカウントは0と出してほしい。 以下のイメージ。 企業名 月 ユーザー登録者数 株式会社AAA 2022-10 3 株式会社AAA 2022-11 0…
「PG-Stromのパッケージング化」がお題となったため、去年末くらいに検証したDocker/PodmanといったようなコンテナーでPG-Stromを動かす方法 に次いで、AnsibleでPG-Strom環境構築の自動化する方法について調査することにしました。 今回はRed Hat Enterprise Linux 8.6とRocky Linux 8.7に対応する形にしました。RHELは偶数バージョンのみサポート期間が長いという特性があるので、バージョン8.6にしています。今後も偶数バージョンがリリースされるごとに対応する予定です。 Rocky LinuxはRHELクローンのひとつですが、CU…
先日アプリの不具合調査の際にコードを読んでいたが、よく理解できていなかったのでまとめてみました。 結論から言うとSQLのWHERE句で比較条件で = を使用する場合、NULLは評価されないです。 こちらの記事にもある通りですが、 NULLはデータの欠落を表すため、任意の値や別のNULLとの関係で等号や不等号は成り立ちません。 以下でMySQLとPostgreSQLで実際にレコードを挿入して試してみました。 MySQL $ sudo docker run -e MYSQL_ROOT_PASSWORD=password mysql:latest $ sudo docker exec -it d10…
概要 参考情報 概要 以下、自分用のメモです。忘れないうちにメモメモ。。。 以下の記事で知りました。感謝m( )m www.publickey1.jp AlloyDBのオンプレミス版がテクニカルプレビューで公開されています。 cloud.google.com cloud.google.com PostgreSQLとフル互換、標準よりもトランザクション性能が良い、開発環境での利用は無料はいいですね。 参考情報 cloud.google.com 過去の記事については、以下のページからご参照下さい。 ブログ過去記事置き場 サンプルコードは、以下の場所で公開しています。 Goのサンプルコード置き場 C…
やりたいこと:UbuntuにPostgresqlのバージョン14を入れたい 環境:Ubuntu20.04 (WSL2) やったこと1 MicrosoftのURLを参考にインストール WSL を使用してデータベースを追加または接続する sudo apt update sudo apt install postgresql postgresql-contrib psql --version → Postgresqlのバージョン12がインストールされたのでアンイントール # 下記コマンドで消した後も場所確認 dpkg -l | grep postgres # バージョン指定 sudo apt rem…
今週もいくつかAPIを実装していました。 毎日集中してコーディングできているので楽しく過ごせています。 先週まではプロダクトのDB設計が今いちわかってなかったのですが、今週実装したAPIが複数のDBテーブルからデータを取る必要があったので、それぞれのテーブルの役割を周りのメンバーに質問したりしながら進めることでかなり理解が深まりました。
開発作業を行う際、Dockerのsql系イメージとDBUnitを使ってテストを作っていたので、練習がてらこちらの記事にも書いていきます。 バージョン関連 ディレクトリ構成 docker-compose.ymlの中身 version services postgresql container_name build ports environment restart Dockerfileの中身 FROM イメージ名 COPY 第一引数 第二引数 ddl、dmlフォルダの中身 ddlの中身 dmlの中身 docker compose でpostgresqlを立ち上げる DBeaverからPostgr…
こんにちは、Red Hatでソリューションアーキテクトをしている石川です。 今回はOpenShift上で利用することができるアプリケーション開発環境であるOpenShift Dev Spacesを使う際のお役立ち情報を紹介したいと思います。 OpenShift Dev Spacesは昨年末のOpenShift Advend Calendar 2022の中でも以下の記事で紹介されています。 こちらの記事も併せてご覧下さい。 qiita.com qiita.com OpenShift Dev Spacesの仕組み Dev SpacesはDevfileというyamlファイルの中で定義された開発環境を…
エンジニア・プログラマーの学習に約立つコンテンツのセール情報を集めました 1位 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル ¥27,800 → ¥1,600 94%OFF!! ⭐ ⭐ ⭐ ⭐ (20,561件) 現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です! 2位 【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 - ¥15,800 → ¥1,500 …
こんにちは、エンジニアの馬場です! 今年もMicrosoft Buildの季節がやってきました。 Copilot系のアップデートをはじめ、かなりもりだくさんな印象です。 詳しくはBOOK OF NEWSを読むとして、早速ちょこちょこ触ってみることにしました! その中でも一番に試したくなったのがAzure App Spaces(プレビュー)です。 learn.microsoft.com techcommunity.microsoft.com 何やらAzureがGitHubの指定したリポジトリのコードを解析してささっとデプロイしてくれるとか…最高ですね。 試してみる まずポータルからApp Spa…
Blogを再開して開発ログを残していこう 今詰まっているのはSQLAlchemy + Alembicでmigrationがうまく動かないこと 具体的にはalembic upgrade headする際にpublicスキーマにあるalembic_versionテーブルが見つからないというエラーが出る sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "public.alembic_version" does not exist 実際にはPostgresql上このテーブルは存在していてversion_…
株式会社リゾーム 技術部 システム開発 第3グループの岡部です。今回は「スッキリわかるSQL入門」読書会の第3回のレポートです。 過去のレポートはこちらからご覧いただけます。 「スッキリわかるSQL入門」読書会レポート vol.1 - リゾームのテックブログ 「スッキリわかるSQL入門」読書会レポート vol.2 - リゾームのテックブログ 書籍について 使用した書籍は「スッキリわかるSQL入門」です。 スッキリわかるSQL入門 第3版 - IT入門書籍 スッキリシリーズ (sukkiri.jp) スッキリわかるSQL入門 第3版 ドリル256問付き! スッキリわかるシリーズ作者:中山清喬,飯…
はじめに おはようございます、ACS事業部の吉川です。 引き続きMicrosoft Build からの情報をお伝えしていきます。 本記事では App Spaces という新サービスをご紹介します。 ※宇宙関連のサービスである Azure Space とは名前が似てますが別モノです! 概要 Webアプリケーションをお手軽にAzure上で稼働させるための支援を行ってくれるサービスです。 大きく分けて以下の2つのアプローチでアプリケーション開発を支援します。 アプリケーションのソースコードが格納されたGitHubリポジトリからAzure上にデプロイする App Spacesで準備されたテンプレートか…
今回はRocky LinuxでWebサーバー開発環境を構築していきます。 Rocky LinuxはVirtual MachineのUTMで動作させます。 WebサーバーはPostgreSQL + Djangoで構築していきます。事前準備は以下を参照してください。 taogya.hatenablog.com taogya.hatenablog.com taogya.hatenablog.com taogya.hatenablog.com 仮想マシンを右クリックして編集を選択します。 ネットワークのネットワークモードを共有ネットワークに設定し、MACアドレスを変更(ランダムを選択)します。 新規で…
当記事は みずほリサーチ&テクノロジーズ × G-gen エンジニアコラボレーション企画 で執筆されたものです。 Cloud Armor は Google Cloud でセキュアな Web アプリケーションを構築するために欠かせないプロダクトです。 代表的なアプリケーションへの攻撃である SQL インジェクションを題材に、CloudArmor の機能を体験できるハンズオンを整備しました。 G-gen の片岩です。 当記事ではサーバレスな Web アプリケーションを構築し、SQL インジェクション攻撃から保護するまでの手順をご紹介します。 Cloud Armor はじめに Cloud Armor…
「えっ、SQLite3ってこんな仕様なの!?」と最近ビックリしたことを紹介します。 たとえばこんな2つのテーブルがあったとします。 CREATE TABLE blogs ( id int primary key, title varchar(32) ); CREATE TABLE comments ( id int primary key, content varchar(32), blog_id int, foreign key (blog_id) references blogs(id) ); ポイントはcommentsテーブルのblog_idにはblogs(id)への外部キー制約が貼って…