Skip to content
Snippets Groups Projects
Commit ec68a471 authored by Nikolay Shirokovskiy's avatar Nikolay Shirokovskiy Committed by Aleksandr Lyapunov
Browse files

box: support downgrading of system spaces

See documentation below for details.

By the way fix `grant_rw_access_on__session_settings_to_role_public` of
upgrade to be idempotent. The changes made by the function are not reverted
on downgrade thus we need this fix to be able to downgrade and then
upgrade back.

Part of #7718

@TarantoolBot document
Title: Document box.schema.downgrade etc

Downgrade makes possible to run database on older versions on Tarantool.
Typical usage is next (running on 2.11.0 in the example below):

tarantool> box.schema.downgrade('2.10.0')
tarantool> box.snapshot()
tarantool> os.exit()

After this command you can run database on Tarantool version 2.10.0
or later. `box.schema.downgrade` only takes version listed in
`box.schema.downgrade_versions()` which is a list of all releases
since 2.8.2.

`downgrade` will fail if downgrading is not possible without losing
data in system spaces. This can be the case if you used functionality
introduced in newer version. For example if you used tuple constraints
intoroduced in version 2.10.0:

NO_WRAP
tarantool> box.schema.downgrade('2.8.4')
---
- error: 'builtin/box/upgrade.lua:1860: Tuple constraint is found in space ''pos_in_box''.
    It is supported starting from version 2.10.0. There are more downgrade issues.
    To list them all call box.schema.downgrade_issues.'
...
NO_WRAP

In the example above there are more then one issues with downgrade and
only first encountered is reported. To see all issues preventing
downgrade use `box.schema.downgrade_issues`:

NO_WRAP
tarantool> box.schema.downgrade_issues('2.8.4')
---
- - Tuple constraint is found in space 'pos_in_box'. It is supported starting from
    version 2.10.0.
  - Tuple constraint is found in space 'pos_in_circle'. It is supported starting from
    version 2.10.0.
...
NO_WRAP
parent b42302f5
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment