Skip to content

Document that DDL is disabled with an old system schema #3484

Open
@TarantoolBot

Description

@TarantoolBot

Related dev. issue(s): tarantool/tarantool#7149

Product: Tarantool
Since: 3.0
Root document: https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_schema/upgrade/
SME: @ locker

Details

Executing DDL operations with an old (not upgraded) system schema is
dangerous and might result in unexpected breakages. So we decided to
explicitly forbid all DDL operations with an old system schema until
box.schema.upgrade() is called. Note, one can still call box.schema
functions with an old schema provided they do nothing, for example, if
an object is created with the if_not_exists flag and the object with
same id already exists:

box.schema.create_space('test', {if_not_exists = true})

Otherwise an attempt to create a space with an old schema will raise
an error like shown below:

tarantool> box.schema.space.create('test')
---
- error: Your schema version is 1.6.8 while Tarantool
    3.0.0-entrypoint-262-g3eaba1cef686 requires a more recent
    schema version. Please, consider using box.schema.upgrade().
...

Requested by @ locker in tarantool/tarantool@97c2c9a.

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.0featureA new functionalityserver[area] Task relates to Tarantool's server (core) functionalityupgradeFunctionality related to upgrade/downgrade

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions