Aller au contenu

CLI

Fenêtre de terminal
npm install -g @petradb/cli
Fenêtre de terminal
petradb [OPTIONS] [path]

Si un chemin est donné, le CLI ouvre (ou crée) une base de données persistante à cet emplacement. Sans chemin, une base de données en mémoire est utilisée.

OptionDescription
-m, --memoryUtiliser une base de données en mémoire (même si un chemin est donné)
-e, --executeExécuter du SQL et quitter (répétable)
-f, --fileExécuter un fichier SQL et quitter (répétable)
--stdinLire le SQL depuis stdin et quitter
--hostSe connecter à un serveur PetraDB distant
--portPort du serveur (par défaut : 5480)
--userNom d’utilisateur pour l’authentification
--passwordMot de passe pour l’authentification
Fenêtre de terminal
# Démarrer une session interactive en mémoire
petradb
# Ouvrir ou créer une base de données persistante
petradb mydata.db
# Exécuter du SQL de manière non interactive
petradb mydata.db -e "SELECT * FROM users"
# Exécuter un fichier puis une requête
petradb mydata.db -f schema.sql -e "SELECT count(*) FROM users"
# Passer du SQL depuis stdin
echo "SELECT 1 + 1" | petradb --stdin
# Se connecter à un serveur distant
petradb --host myserver.example.com --port 5480
# Se connecter avec authentification
petradb --host localhost --user admin --password secret

L’extension du fichier détermine le mode de stockage :

ExtensionModeDescription
.petra (ou toute autre)PersistantStockage durable résistant aux pannes via pages en copie-sur-écriture
.ptxtTexteFichier lisible par l’homme, réécrit après chaque modification
(pas de chemin)En mémoireLes données existent uniquement pour la durée de la session

La sous-commande dump affiche le schéma complet et les données d’une base de données persistante sous forme d’instructions SQL.

Fenêtre de terminal
petradb dump mydata.db

La sortie inclut les instructions CREATE TYPE, CREATE TABLE, INSERT INTO et CREATE VIEW permettant de recréer la base de données à partir de zéro.

Lorsqu’il est démarré sans -e, -f ou --stdin, le CLI entre dans un shell SQL interactif avec historique readline.

Tapez du SQL terminé par ; pour l’exécuter. La saisie multi-lignes est supportée — une invite de continuation ( ->) apparaît jusqu’à ce que vous terminiez par ;.

CommandeDescription
\dtLister toutes les tables
\dvLister toutes les vues
\dsLister toutes les séquences
\diLister tous les index
\d <name>Décrire une table ou une vue (colonnes, types, nullabilité)
\i <file>Exécuter du SQL depuis un fichier
\dumpAfficher le schéma complet et les données en SQL
\copy <args>Exécuter une instruction COPY
\timingActiver/désactiver le chronométrage des requêtes
\qQuitter
$ petradb
PetraDB — interactive SQL shell
Type \q to quit, \dt to list tables, \d <table> to describe a table.
petra> CREATE TABLE cities (name TEXT, population INT);
CREATE TABLE
petra> INSERT INTO cities (name, population) VALUES ('Oslo', 709037);
INSERT 0 1
petra> SELECT * FROM cities;
name | population
------+------------
Oslo | 709037
(1 row)
petra> \dt
Table
--------
cities
(1 row)
petra> \d cities
Table "cities"
Column | Type | Nullable
------------+------+----------
name | TEXT | null
population | INT | null
petra> \timing
Timing is on.
petra> SELECT count(*) FROM cities;
count
-------
1
(1 row)
Time: 0.002 s
petra> \q