postgresql

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

データベースバージョン 1.1.3安定版
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>

操作モデル

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

バックアップと復元

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.3
確認または更新

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

upgrade postgresql
モジュールを削除

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

install postgresql -u

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

PostgreSQL テーブルを確認
postgresql -use shop | postgresql -t | postgresql -n products 5
Database  shop

products
orders

id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.90	t
2	SHOE-2	Trail shoe	shoes	109.00	t
Postgresql · localhost
postgresql -c localhost app shop
Status    connected
Server    PostgreSQL 17
Host      localhost:5432
User      app
Database  shop
Postgresql · -l
postgresql -l
postgres
shop
template1
Postgresql · products
postgresql -s products
Column    Type           Nullable
id        bigint         no
sku       text           no
name      text           no
category  text           no
price     numeric(10,2)  no
active    boolean        no
Postgresql · products
postgresql -f products "shoe" 20
id	sku	name	category	price
1	SHOE-1	City shoe	shoes	79.90
2	SHOE-2	Trail shoe	shoes	109.00
Postgresql · products
postgresql -o products -j products.json
Saved  products.json
Postgresql · products
postgresql -a products : {"sku":"BAG-1","name":"Travel bag","price":49.90}
Inserted  1
Postgresql · products
postgresql -w products sku BAG-1 : {"price":44.90}
Updated  1
Postgresql · products
postgresql -d products sku BAG-1
Deleted  1
Postgresql · select
postgresql : SELECT COUNT(*) AS products FROM products
products
4
Postgresql · dump
postgresql dump shop.json
Saved  shop.json
Postgresql · load
postgresql load \sandbox\db\postgresql.sql
Affected  2
Time      2 ms
Postgresql · -e
postgresql -e
+
存在しないテーブルを扱う
postgresql -s missing_table
テーブルが見つかりません: 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.32026-08-14

保存済み接続

明示的な -m/-M/-k/-K プロファイルを .lil.key に追加し、一覧では保存済みパスワードを表示しません。