4
3

postgres-newを使ってみた

Last updated at Posted at 2024-08-13

postgres-newとは?

supabaseのAI支援付きpostgreSQLのサンドボックスです。

こちらから使用できます(GitHubアカウント連携が必要ですが無料)。

赤枠部にテキストを入力することで、AIの支援が受けられます。
1.png

本記事より詳細なプロモーションビデオ


  • データベースの作成

    • 入力例
    勤怠システムのデータベースを作成してください
    
    
    • 応答例
    勤怠システムのデータベースを作成するために、以下のようなテーブルを設計します:
    
    従業員 (employees)
    勤怠記録 (attendance_records)
    部署 (departments)
    従業員 (employees)
    id: bigint primary key generated always as identity
    name: text
    email: text
    department_id: bigint (外部キー: departments.id)
    hire_date: date
    勤怠記録 (attendance_records)
    id: bigint primary key generated always as identity
    employee_id: bigint (外部キー: employees.id)
    date: date
    check_in: timestamp
    check_out: timestamp
    部署 (departments)
    id: bigint primary key generated always as identity
    name: text
    これらのテーブルを作成するSQLを実行します。
    
    
    Executed SQL
    勤怠システムのデータベースが正常に作成されました。以下のテーブルが含まれています:
    
    departments: 部署情報を格納します。
    employees: 従業員情報を格納します。
    attendance_records: 勤怠記録を格納します。
    テーブル構造
    departments
    id: bigint primary key generated always as identity
    name: text
    employees
    id: bigint primary key generated always as identity
    name: text
    email: text
    department_id: bigint (外部キー: departments.id)
    hire_date: date
    attendance_records
    id: bigint primary key generated always as identity
    employee_id: bigint (外部キー: employees.id)
    date: date
    check_in: timestamp
    check_out: timestamp
    次に、サンプルデータを挿入してみましょうか?
    

    この段階でテーブルのER図がつくられます。
    2.png

    ER図のカラムをクリックすることで、制約やインデックスの作成が出来ます。

    また、Migrationsタブを開くことで生SQLが確認できます

    3.png

    現状、大量のサンプルデータの挿入は誤ったSQLを作成し
    失敗しやすいですが、小規模データは問題なさそうです。

    4.png
      
    CSVファイルからテーブルを作成したり、データをロードできますし、
    簡単な分析もできそうです

    5.png

    データベース毎の履歴からクラスターのダウンロードも可能です
    6.png

    ダウンロードファイルの中身

    C:\Users\masami\Desktop\-1723621241654>tree /f
    フォルダー パスの一覧
    ボリューム シリアル番号は 368F-F563 です
    C:.
    │  pg_hba.conf
    │  pg_ident.conf
    │  PG_VERSION
    │  postgresql.auto.conf
    │  postgresql.conf
    │  postmaster.pid
    │
    ├─base
    │  ├─1
    │  │      112
    │  │      ・・・
    │  │      pg_filenode.map
    │  │      pg_internal.init
    │  │      PG_VERSION
    │  │
    │  └─・・・
    │
    ├─global
    │      1213
    │      ・・・
    │      pg_control
    │      pg_filenode.map
    │      pg_internal.init
    │
    ├─pg_commit_ts
    ├─pg_dynshmem
    ├─pg_logical
    │  │  replorigin_checkpoint
    │  │
    │  ├─mappings
    │  └─snapshots
    ├─pg_multixact
    │  ├─members
    │  │      0000
    │  │
    │  └─offsets
    │          0000
    │
    ├─pg_notify
    ├─pg_replslot
    ├─pg_serial
    ├─pg_snapshots
    ├─pg_stat
    ├─pg_stat_tmp
    ├─pg_subtrans
    │      0000
    │
    ├─pg_tblspc
    ├─pg_twophase
    ├─pg_wal
    │  │  000000010000000000000008
    │  │  ・・・
    │  │
    │  └─archive_status
    └─pg_xact
            0000
    

    設定ファイル等は環境によってチューニングが必要なので、基本的にこのまま使うことはないでしょう。postmaster.pidもない方が良いですね。


    現状、ブラウザのウィンドウサイズによっては使用できません。
    5.png

Pgliteを使用しているため、PostgresはWASM実装であり、完全ローカルで実行されます。

そのため、データベースパフォーマンスはローカル環境に依存します。
アクセスが増えても、スケールしやすい点が良いですね。
DBクラスターも実はローカルにあるので、ダウンロードも速いですね。
余計なデータをローカルに残しておきたくない場合は、履歴からクラスターを削除しましょう。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3