Migration from tarantoolctl to tt
tt is a command-line utility for managing Tarantool applications that comes to replace tarantoolctl. Starting from version 3.0, tarantoolctl is no longer shipped as a part of Tarantool distribution; tt is the only recommended tool for managing Tarantool applications from the command line.
tarantoolctl remains fully compatible with Tarantool 2.* versions. However, it doesn’t receive major updates anymore.
We recommend that you migrate from tarantoolctl to tt to ensure the full support and timely updates and fixes.
tt supports system-wide environment configuration by default. If you have Tarantool instances managed by tarantoolctl in such an environment, you can switch to tt without additional migration steps or use tt along with tarantoolctl.
Example:
$ sudo tt instances List of enabled applications: • example $ tarantoolctl start example Starting instance example... Forwarding to 'systemctl start tarantool@example' $ tarantoolctl status example Forwarding to 'systemctl status tarantool@example' ● tarantool@example.service - Tarantool Database Server Loaded: loaded (/lib/systemd/system/tarantool@.service; enabled; vendor preset: enabled) Active: active (running) Docs: man:tarantool(1) Main PID: 6698 (tarantool) . . . $ sudo tt status • example: RUNNING. PID: 6698. $ sudo tt connect example • Connecting to the instance... • Connected to /var/run/tarantool/example.control /var/run/tarantool/example.control> $ sudo tt stop example • The Instance example (PID = 6698) has been terminated. $ tarantoolctl status example Forwarding to 'systemctl status tarantool@example' ○ tarantool@example.service - Tarantool Database Server Loaded: loaded (/lib/systemd/system/tarantool@.service; enabled; vendor preset: enabled) Active: inactive (dead) If you have a local tarantoolctl configuration, create a tt environment based on the existing .tarantoolctl configuration file. To do this, run tt init in the directory where the file is located.
Example:
$ cat .tarantoolctl default_cfg = { pid_file = "./run/tarantool", wal_dir = "./lib/tarantool", memtx_dir = "./lib/tarantool", vinyl_dir = "./lib/tarantool", log = "./log/tarantool", language = "Lua", } instance_dir = "./instances.enabled" $ tt init • Found existing config '.tarantoolctl' • Environment config is written to 'tt.yaml' After that, you can start managing Tarantool instances in this environment with tt:
$ tt start app1 • Starting an instance [app1]... $ tt status app1 • app1: RUNNING. PID: 33837. $ tt stop app1 • The Instance app1 (PID = 33837) has been terminated. $ tt check app1 • Result of check: syntax of file '/home/user/instances.enabled/app1.lua' is OK Most tarantoolctl commands look the same in tt: tarantoolctl start and tt start, tarantoolctl play and tt play, and so on. To migrate such calls, it is usually enough to replace the utility name. There can be slight differences in command flags and format. For details on tt commands, see the tt commands reference.
The following commands are different in tt:
tarantoolctl command | tt command |
|---|---|
tarantoolctl enter | tt connect |
tarantoolctl eval | tt connect with -f flag |
Note
tt connect also covers tarantoolctl connect with the same syntax.
Example:
# tarantoolctl enter > tt connect $ tarantoolctl enter app1 connected to unix/:./run/tarantool/app1.control unix/:./run/tarantool/app1.control> $ tt connect app1 • Connecting to the instance... • Connected to /home/user/run/tarantool/app1/app1.control # tarantoolctl eval > tt connect -f $ tarantoolctl eval app1 eval.lua connected to unix/:./run/tarantool/app1.control --- - 42 ... $ tt connect app1 -f eval.lua --- - 42 ... # tarantoolctl connect > tt connect $ tarantoolctl connect localhost:3301 connected to localhost:3301 localhost:3301> $ tt connect localhost:3301 • Connecting to the instance... • Connected to localhost:3301