Renaming a table
Using the tools rename
subcommand, you can rename one or more tables at the same time, move a table to another directory within the same database, replace one table with another one within the same transaction.
General command format:
ydb [global options...] tools rename [options...]
global options
: Global parameters.options
: Subcommand parameters.
View a description of the command to rename a table:
ydb tools rename --help
Subcommand parameters
A single run of the tools rename
command executes a single rename transaction that may include one or more operations to rename different tables.
Parameter name | Parameter description |
---|---|
—item <property>=<value>,… | Description of the rename operation. Can be specified multiple times if multiple rename operations need to be executed within a single transaction. Required properties:
|
—timeout <value> | Operation timeout, ms. |
When including multiple rename operations in a single tools rename
call, they’re executed in the specified order, but within a single transaction. This lets you rotate the table under load without data loss: the first operation is renaming the working table to the backup one and the second is renaming the new table to the working one.
Examples
Renaming a single table:
ydb tools rename --item src=old_name,dst=new_name
Renaming multiple tables within a single transaction:
ydb tools rename \
--item source=new-project/main_table,destination=new-project/episodes \
--item source=new-project/second_table,destination=new-project/seasons \
--item source=new-project/third_table,destination=new-project/series
Moving tables to a different directory:
ydb tools rename \
--item source=new-project/main_table,destination=cinema/main_table \
--item source=new-project/second_table,destination=cinema/second_table \
--item source=new-project/third_table,destination=cinema/third_table
Replacing a table
ydb tools rename \
--item replace=True,source=pre-prod-project/main_table,destination=prod-project/main_table
Rotating a table
ydb tools rename \
--item source=prod-project/main_table,destination=prod-project/main_table.backup \
--item source=pre-prod-project/main_table,destination=prod-project/main_table