Ir al contenido

CLI

Ventana de terminal
npm install -g @petradb/cli
Ventana de terminal
petradb [OPCIONES] [ruta]

Si se proporciona una ruta, el CLI abre (o crea) una base de datos persistente en esa ubicacion. Sin una ruta, se usa una base de datos en memoria.

OpcionDescripcion
-m, --memoryUsar una base de datos en memoria (incluso si se proporciona una ruta)
-e, --executeEjecutar SQL y salir (repetible)
-f, --fileEjecutar un archivo SQL y salir (repetible)
--stdinLeer SQL desde stdin y salir
--hostConectar a un servidor PetraDB remoto
--portPuerto del servidor (por defecto: 5480)
--userNombre de usuario para autenticacion
--passwordContrasena para autenticacion
Ventana de terminal
# Iniciar una sesion interactiva en memoria
petradb
# Abrir o crear una base de datos persistente
petradb mydata.db
# Ejecutar SQL de forma no interactiva
petradb mydata.db -e "SELECT * FROM users"
# Ejecutar un archivo y luego una consulta
petradb mydata.db -f schema.sql -e "SELECT count(*) FROM users"
# Enviar SQL desde stdin
echo "SELECT 1 + 1" | petradb --stdin
# Conectar a un servidor remoto
petradb --host myserver.example.com --port 5480
# Conectar con autenticacion
petradb --host localhost --user admin --password secret

La extension del archivo determina el modo de almacenamiento:

ExtensionModoDescripcion
.petra (o cualquier otra)PersistenteAlmacenamiento durable a prueba de fallos via paginas copy-on-write
.ptxtTextoArchivo legible por humanos, reescrito despues de cada cambio
(sin ruta)En memoriaLos datos existen solo durante la duracion de la sesion

El subcomando dump imprime el esquema completo y los datos de una base de datos persistente como sentencias SQL.

Ventana de terminal
petradb dump mydata.db

La salida incluye sentencias CREATE TYPE, CREATE TABLE, INSERT INTO y CREATE VIEW que pueden recrear la base de datos desde cero.

Cuando se inicia sin -e, -f o --stdin, el CLI entra en un shell SQL interactivo con historial readline.

Escribe SQL terminado con ; para ejecutar. Se soporta entrada multilinea — aparece un prompt de continuacion ( ->) hasta que termines con ;.

ComandoDescripcion
\dtListar todas las tablas
\dvListar todas las vistas
\dsListar todas las secuencias
\diListar todos los indices
\d <nombre>Describir una tabla o vista (columnas, tipos, nulabilidad)
\i <archivo>Ejecutar SQL desde un archivo
\dumpImprimir el esquema completo y los datos como SQL
\copy <args>Ejecutar una sentencia COPY
\timingAlternar medicion de tiempo de consulta
\qSalir
$ 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