postgresql

postgresql は PostgreSQL に接続し、テーブルと行の確認、対象を絞った変更、データのエクスポート、ネイティブ SQL、論理バックアップを扱います。

データベースバージョン 1.1.4安定版
lil-terminal

概要

postgresql は、非表示パスワード入力、スキーマと行の確認、部分更新、エクスポート、ネイティブ SQL、shell ツール不要の論理バックアップを一貫した流れで提供します。

PostgreSQL のモデルを保つ

PostgreSQL は強い型、transaction、豊富なネイティブ SQL を備えたクライアント/サーバー型リレーショナルデータベースです。1 つの database に複数の schema があり、その中に table や他の object を置けるため、ここでの schema は名前空間の意味も持ちます。日常操作は短い surface、PostgreSQL 固有機能は : で使い分けます。

構文

lil-terminal
postgresql [options] · postgresql : <sql>

リファレンス

postgresql

現在の PostgreSQL 接続を表示

postgresql -c <host> <user> [database] [-p <port>] [-n] [-m [name]]

接続する;-n を使わない場合はパスワードを別入力で要求

-use <database>

再接続して別のデータベースを選択

-l

データベースを一覧表示

-t

public テーブルとビューを一覧表示

-s <table>

列とデータ型を表示

-n <table> [rows]

テーブル行をプレビュー

-f <table> <text> [rows]

テーブルの各列からテキストを検索

-o <table> [-j|-csv] [file] [-f]

テーブル行をエクスポート

-a <table> : <json>

JSON オブジェクトから1行追加

-w <table> <field> <value> : <json>

一致する行を JSON オブジェクトで更新

-d <table> <field> <value>

一致する行を削除

-m [name]

現在の接続を .lil.key に保存。既定名はデータベース名

-M <name>

保存済み接続を削除

-k [name]

保存済み接続を一覧表示、またはパスワードを表示せずに1件確認

-K <name>

保存済み接続を使って接続

-e

切断して接続情報を消去

postgresql : <sql>

ネイティブ SQL を実行

postgresql load <file.sql|file.json>

SQL を実行するか lil 論理 JSON ダンプを復元

postgresql dump [file.json] [-f]

public テーブルの論理 JSON ダンプを作成

使い方

postgresql [options] · postgresql : <sql>

まず安全に確認

postgresql -c localhost demo shop で接続し、パスワードは別の入力欄に入力します。-t はテーブル、-s products は列、-n products 2 は行を表示し、-f products shoe 2 で検索できます。: の後に SQL を指定でき、-o products -csv tmp/products.csv は CSV を書き出します。

データを変更する前に

-w と -d は一致したすべての行に作用します。先に条件を確認しバックアップしてください。dump は public テーブルのデータを lil JSON に保存しますが、スキーマや索引、権限は含まれません。pg_dump の代わりではなく、PHP pgsql 拡張が必要です。

操作モデル

よく使う形式はローカルリファレンスにまとまっています。短縮操作は確認と小規模な変更を担当し、高度な操作では各データベースのネイティブ構文をそのまま使えます。

バックアップと復元

dump/load の形式はドライバーごとに異なります。エンジンの全機能を含む完全なバックアップが必要な場合は、サーバー側のネイティブツールを使ってください。

安全性

パスワードは非表示入力で受け取り、コマンド履歴には保存しません。可能な限り権限を限定したアカウントを利用してください。

lil の JSON ダンプはデータのみで、スキーマオブジェクトやインデックスは再作成しません。JSON 復元はトランザクションで行われ、100000 行を超えるテーブルのエクスポートやダンプは拒否されます。

保存済み接続

-m を使わない限り、接続データは現在の PHP セッションだけに保持されます。-m [name] はプロファイルを保護された .lil.key(0600)へ明示的に保存し、-K <name> はそれを使って再接続、-k は保存済みパスワードを表示せずに一覧または詳細を確認し、-M <name> は1件削除します。kill は他のコア状態とともに .lil.key を削除します。任意保存したプロファイルにはデータベース認証情報が含まれる場合があるため、このファイルは機密として扱ってください。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

PostgreSQL テーブルを確認

インストールと管理

現在の互換バージョンをインストールします。全機能は Base、縮小版は Minimum を選び、すでに導入済みのモジュール更新には upgrade を使います。

Base と Minimum は同じ現在のモジュールリリースの二つのパッケージです。

Base パッケージ

ローカル参照と公開済みの全モードを含む完全パッケージをインストールします。

install postgresql
Minimum パッケージ

縮小パッケージをインストールします。ローカルリファレンスは含まれず、help <cmd> -i で現在のサーバーリファレンスを開きます。

install postgresql -m
正確な公開版

この公開済みバージョンを正確に指定してインストールします。

install postgresql -v 1.1.4
確認または更新

upgrade が互換性を確認し、必要な場合だけブロックを置換します。

upgrade postgresql
モジュールを削除

コアや他のモジュールに触れず拡張ブロックを削除します。

install postgresql -u

例

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

PostgreSQL テーブルを確認
postgresql
学習用の例 — 実際の接続なし
A connection is required; the status view names the server and selected database.
Postgresql · localhost
postgresql -c localhost demo shop -n
学習用の例 — 実際の接続なし
Connection example: server and database will be shown after a successful connection.
Postgresql · localhost
postgresql -c localhost demo shop
学習用の例 — 実際の接続なし
Password is requested separately; selected database: shop.
Postgresql · localhost
postgresql -c localhost demo shop -p 5433 -n
学習用の例 — 実際の接続なし
Connection example: server and database will be shown after a successful connection.
再接続して別のデータベースを選択
postgresql -use shop
学習用の例 — 実際の接続なし
Selected database: shop (requires an active connection)
データベースを一覧表示
postgresql -l
学習用の例 — 実際の接続なし
postgres
shop
Public テーブルとビューを一覧表示
postgresql -t
学習用の例 — 実際の接続なし
products  BASE TABLE
列とデータ型を表示
postgresql -s products
学習用の例 — 実際の接続なし
column_name  data_type
id  bigint
sku  text
name  text
category  text
price  numeric
active  boolean
テーブル行をプレビュー
postgresql -n products 2
学習用の例 — 実際の接続なし
sku=SHOE-1  name=City shoe  category=shoes  price=79.9  active=True
sku=BAG-1  name=Canvas bag  category=bags  price=44.5  active=True
テーブルの各列からテキストを検索
postgresql -f products shoe 2
学習用の例 — 実際の接続なし
sku=SHOE-1  name=City shoe  category=shoes  price=79.9  active=True
テーブル行をエクスポート
postgresql -o products -j
学習用の例 — 実際の接続なし
[
  {
    "sku": "SHOE-1",
    "name": "City shoe",
    "category": "shoes",
    "price": 79.9,
    "active": true
  },
  {
    "sku": "BAG-1",
    "name": "Canvas bag",
    "category": "bags",
    "price": 44.5,
    "active": true
  }
]
Postgresql · products
postgresql -o products -csv tmp/products.csv
学習用の例 — 実際の接続なし
Saved  sandbox/tmp/products.csv (if the destination does not exist)
Postgresql · products
postgresql -o products -j tmp/products.json -f
学習用の例 — 実際の接続なし
Saved  sandbox/tmp/products.json (replace existing file only with -f)
存在しないテーブルを扱う
postgresql -a products : {"sku":"NEW-1","name":"Sample","category":"test","price":5,"active":true}
学習用の例 — 実際の接続なし
Inserted  1 (example with a fresh, isolated copy)
一致する行を JSON オブジェクトで更新
postgresql -w products sku SHOE-1 : {"price":75}
学習用の例 — 実際の接続なし
Updated  1 (illustrative single matching row)
一致する行を削除
postgresql -d products sku SHOE-1
学習用の例 — 実際の接続なし
Deleted  1 (example only; all matches would be affected)
ネイティブ SQL を実行
postgresql : SELECT COUNT(*) AS total FROM products
学習用の例 — 実際の接続なし
total
2
Public テーブルの論理 JSON ダンプを作成
postgresql dump tmp/shop-pg.json
学習用の例 — 実際の接続なし
Saved  sandbox/tmp/shop-pg.json
Format  lil-postgresql-json (logical data export, not server backup)
Postgresql · dump
postgresql dump tmp/shop-pg.json -f
学習用の例 — 実際の接続なし
Saved  sandbox/tmp/shop-pg.json
Format  lil-postgresql-json (logical data export, not server backup)
SQL を実行するか lil 論理 JSON ダンプを復元
postgresql load db/postgresql.sql
学習用の例 — 実際の接続なし
SQL/JSON import requires an existing schema; running the supplied CREATE TABLE twice causes a conflict.
SQL を実行するか lil 論理 JSON ダンプを復元
postgresql load tmp/shop-pg.json
学習用の例 — 実際の接続なし
SQL/JSON import requires an existing schema; running the supplied CREATE TABLE twice causes a conflict.
現在の接続を .lil.key に保存。既定名はデータベース名
postgresql -m shop-demo
学習用の例 — 実際の接続なし
Saved  shop-demo (stores a sensitive profile in .lil.key)
保存済み接続を一覧表示、またはパスワードを表示せずに1件確認
postgresql -k
学習用の例 — 実際の接続なし
No saved connections (unless a profile has already been saved)
保存済み接続を一覧表示、またはパスワードを表示せずに1件確認
postgresql -k shop-demo
学習用の例 — 実際の接続なし
Saved connection not found: shop-demo (unless saved earlier)
保存済み接続を使って接続
postgresql -K unknown
学習用の例 — 実際の接続なし
Saved connection not found: unknown
保存済み接続を削除
postgresql -M unknown
学習用の例 — 実際の接続なし
Saved connection not found: unknown
切断して接続情報を消去
postgresql -e
学習用の例 — 実際の接続なし
+
Postgresql · localhost
postgresql -c localhost demo shop -p 99999 -n
学習用の例 — 実際の接続なし
Invalid database port
列とデータ型を表示
postgresql -s missing_table
学習用の例 — 実際の接続なし
Table not found: missing_table

この例で使うファイル: sandbox/db/postgresql.sql

例では、保護されたドキュメント用 /sandbox/ ワークスペースのファイルまたはディレクトリを使います。

CREATE TABLE products (id BIGSERIAL PRIMARY KEY, sku text UNIQUE NOT NULL, name text NOT NULL, category text NOT NULL, price numeric(10,2) NOT NULL, active boolean NOT NULL DEFAULT true);
INSERT INTO products(sku,name,category,price,active) VALUES ('SHOE-1','City shoe','shoes',79.90,true),('BAG-1','Canvas bag','bags',44.50,true);

関連ドキュメント

現在の公開版

v1.1.42026-11-01

プロダクション向け調整

postgresql の現在の安定版。postgresql は PostgreSQL に接続し、テーブルと行の確認、対象を絞った変更、データのエクスポート、ネイティブ SQL、論理バックアップを扱います。