Bienvenue à irissqlcli - terminal avancé pour IRIS SQL
Je vous présente mon nouveau projet, qui est irissqlcli, REPL (Read-Eval-Print Loop) pour InterSystems IRIS SQL
- Mise en évidence de la syntaxe
- Suggestions (tableaux, fonctions)
- Plus de 20 formats de sortie
- Support de stdin
- Sortie vers des fichiers
L'installez avec pip
pip install irissqlcliOu lancez avec docker
docker run -it caretdev/irissqlcli irissqlcli iris://_SYSTEM:SYS@host.docker.internal:1972/USERConnection à IRIS
$ irissqlcli iris://_SYSTEM@localhost:1972/USER -W
Password for _SYSTEM:
Server: InterSystems IRIS Version 2022.3.0.606 xDBC Protocol Version 65
Version: 0.1.0
[SQL]_SYSTEM@localhost:USER> select $ZVERSION
+---------------------------------------------------------------------------------------------------------+
| Expression_1 |
+---------------------------------------------------------------------------------------------------------+
| IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2022.3 (Build 606U) Mon Jan 30202309:05:12 EST |
+---------------------------------------------------------------------------------------------------------+
1 row in set
Time: 0.063s
[SQL]_SYSTEM@localhost:USER> help
+----------+-------------------+------------------------------------------------------------+
| Commande | Raccourci | Description |
+----------+-------------------+------------------------------------------------------------+
| .exit | \q | Sortie. |
| .mode | \T | Modifier le format de tableau utilisé pour les résultats. |
| .once | \o [-o] filename | Ajout du résultat suivant à un fichier de sortie (écraser en utilisant -o). |
| .schemas | \ds | Liste des schémas. |
| .tables | \dt [schema] | Liste des tableaux. |
| \e | \e | Commande d'édition avec éditeur (utilise $EDITOR). |
| help | \? | Montre cette utilité. |
| nopager | \n | Désactiver le pager, imprimer vers stdout. |
| notee | notee | Arrête l'écriture des résultats dans un fichier de sortie. |
| pager | \P [command] | Definition du PAGER. Impression des résultats de la requête via PAGER. |
| prompt | \R | Modification du format de l'invite. |
| quit | \q | Quit. |
| tee | tee [-o] filename | Ajout de tous les résultats à un fichier de sortie (écraser en utilisant -o). |
+----------+-------------------+------------------------------------------------------------+
Time: 0.012s
[SQL]_SYSTEM@localhost:USER>$ irissqlcli --help
Usage: irissqlcli [OPTIONS] [URI] [NOM D'UTILISATEUR]
Options:
-h, --host TEXT Adresse hôte de l'instance IRIS.
-p, --port INTEGER Numéro de port sur lequel l'instance IRIS està l'écoute.
-U, --username TEXT Nom d'utilisateur pour se connecter à l'instance IRIS.
-u, --user TEXT Nom d'utilisateur pour se connecter à l'instance IRIS.
-W, --password Invite de mot de passe forcée.
-v, --version Version de irissqlcli.
-n, --nspace TEXT nom de l'espace de nom auquel se connecter.
-q, --quiet Mode silencieux, saut de l'intro au démarrage etau revoir à la
sortie.
-l, --logfile FILENAME Enregistrez chaque requête etses résultats dans un fichier.
--irissqlclirc FILE L'emplacement du fichier irissqlclirc.
--auto-vertical-output Passage automatique en mode de sortie verticale sile résultat est plus large que la largeur du terminal. résultat estplus large que la largeur du terminal.
--row-limit INTEGER Définissez le seuil pour l'invite de limite de rangée de . Utilisez 0 pour désactiver
l'invite.
-t, --table Affichez la sortie du lot au format tableau .
--csv Affichez la sortie du lot in au format CSV.
--warn / --no-warn Avertissement avant d'exécuter une requête destructive.
-e, --execute TEXT Exécutez la commande etquitter.
--help Affichage de ce message et sortie.ou en Python Embedded (nécessite de %Service_CallIn activé)
$ irissqlcli iris+emb:///USER
Server: IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2022.2 (Build 368U) Fri Oct 21202216:39:41 EDT
Version: 0.1.0
[SQL]irisowner@/usr/irissys/:USER>
L'application supporte stdin, ce qui vous permet d'envoyer un fichier SQL avec un tas de requêtes SQL et de commandes irissqcli. Par exemple, cette commande produira 3 fichiers dans différents formats (parmi plus de 20 formats disponibles)
$ cat <select top 10 TABLE_SCHEMA,TABLE_NAME
from information_schema.tables
orderby TABLE_SCHEMA,TABLE_NAME;
notee;
.mode latex;
tee -o test.tex;
select top 10 TABLE_SCHEMA,TABLE_NAME
from information_schema.tables
orderby TABLE_SCHEMA,TABLE_NAME;
notee;
.mode html;
tee -o test.html;
select top 10 TABLE_SCHEMA,TABLE_NAME
from information_schema.tables
orderby TABLE_SCHEMA,TABLE_NAME;
notee;
EOF De plus, il est possible d'exécuter un terminal web avec docker
docker run -d --name irissqlcli \
--restart always \
-p 7681:7681\
caretdev/irissqlcli-web irissqlcli iris://_SYSTEM:SYS@host.docker.internal:1972/USER.png)
Et avec docker-compose
version: '3'
services:
iris:
image: intersystemsdc/iris-community
ports:
- 1972
- 52773
command:
- -a
- '##class(Security.Users).UnExpireUserPasswords("*")'
cli:
image: caretdev/irissqlcli-web
ports:
- 7681:7681
environment:
- IRIS_HOSTNAME:iris
- IRIS_PORT=1972
- IRIS_NAMESPACE=USER
- IRIS_USERNAME=_SYSTEM
- IRIS_PASSWORD=SYS
Discussion (0)0