The crash shell provides a CLI for the Crate Server.
If the package was installed using pip the shell can be started by invoking crash in a terminal.
crash by default will try to connect to localhost:4200. To connect to another host use the connect command inside the shell or use the –hosts argument when launching the shell.
When you connect to a server that is not reachable or whose hostname cannot be resolved you will get an error:
cr> connect 127.0.0.1:65535
+------------------------+-----------+-----------+--------------------+
| server_url | node_name | connected | message |
+------------------------+-----------+-----------+--------------------+
| http://127.0.0.1:65535 | NULL | FALSE | Connection refused |
+------------------------+-----------+-----------+--------------------+
CONNECT ERROR
cr> connect null.lol:4200
+----------------------+-----------+-----------+--------------------------------+
| server_url | node_name | connected | message |
+----------------------+-----------+-----------+--------------------------------+
| http://null.lol:4200 | NULL | FALSE | Hostname could no be resolved. |
+----------------------+-----------+-----------+--------------------------------+
CONNECT ERROR
Successful connects will give you some information about the servers you connect to:
cr> connect 127.0.0.1:44209
+------------------------+-----------+-----------+---------+
| server_url | node_name | connected | message |
+------------------------+-----------+-----------+---------+
| http://127.0.0.1:44209 | crate | TRUE | OK |
+------------------------+-----------+-----------+---------+
CONNECT OK
If you connect to more than one server, the command will succeed if at least one server is reachable:
cr> CONNECT 127.0.0.1:44209 null.lol:4295
+------------------------+-----------+-----------+--------------------------------+
| server_url | node_name | connected | message |
+------------------------+-----------+-----------+--------------------------------+
| http://127.0.0.1:44209 | crate | TRUE | OK |
| http://null.lol:4295 | NULL | FALSE | Hostname could no be resolved. |
+------------------------+-----------+-----------+--------------------------------+
CONNECT OK
Once the shell is connected, SQL statements can be executed simply by entering them without any special arguments like this:
cr> SELECT schema_name, table_name from information_schema.tables
... order by table_name
+--------------------+-------------------+
| schema_name | table_name |
+--------------------+-------------------+
| sys | cluster |
| information_schema | columns |
| sys | nodes |
| sys | shards |
| information_schema | table_constraints |
| information_schema | tables |
+--------------------+-------------------+
SELECT 6 rows in set (... sec)