migrations
migrations copied to clipboard
Drop space doesn't work in migration in TE 2.8.4
Steps to reproduce:
- Apply migration to new or existing Tarantool Cartridge project.
- Migration fails (see error descripton below)
Tarantool rockspec:
package = 'app'
version = 'scm-1'
source = {
url = '/dev/null',
}
-- Put any modules your app depends on here
dependencies = {
'tarantool == 2.8.4',
'lua == 5.1',
'cartridge == 2.7.4-1',
'metrics == 0.14.0-1',
'cartridge-cli-extensions == 1.1.1-1',
'crud == 0.11.3-1',
'migrations == 0.4.2-1',
'space-explorer == 1.1.6-1',
}
build = {
type = 'none';
}
Migration: 01_issue_with_drop_space.lua
return {
up = function()
local utils = require('migrator.utils')
local user_helper = require('app.utils.user_helper')
-- Create space format before apply migration
local space_name = 'first_space'
local settings_object = box.schema.space.create(space_name, { if_not_exists = true })
settings_object:format({
{ name = "id", type = "integer" },
{ name = "content", type = "string" },
{ name = "bucket_id", type = "unsigned" }
})
settings_object:create_index("primary", { parts = { { field = "id" } },
if_not_exists = true })
settings_object:create_index("bucket_id", { parts = { { field = "bucket_id" } },
unique = false,
if_not_exists = true })
utils.register_sharding_key(space_name, {'id'})
--- Backup data
local other_space_name = 'second_space'
local backup = box.schema.space.create(other_space_name, { if_not_exists = true })
backup:format({
{ name = "id", type = "string" },
{ name = "content", type = "string" },
{ name = "bucket_id", type = "unsigned" }
})
backup:create_index("primary", { parts = { { field = "id" } }, if_not_exists = true })
backup:create_index("bucket_id", { parts = { { field = "bucket_id" } }, unique = false, if_not_exists = true })
utils.register_sharding_key(other_space_name, {'id'})
box.space[other_space_name]:drop()
return true
end
}
Error:
2022-07-18 19:31:51.546 [5147] main/166/main migrator.lua:148 E> Migration 07_issue_with_drop_space.lua not applied: migrator: /home/tarantool/app/init.lua:47: attempt to index local 'sp' (a nil value)
stack traceback:
builtin/box/schema.lua:534: in function 'drop'
...app/migrations/07_issue_with_drop_space.lua:40: in function <...app/migrations/07_issue_with_drop_space.lua:2>
[C]: in function 'xpcall'
...app/.rocks/share/tarantool/errors.lua:145: in function 'pcall'
...app/.rocks/share/tarantool/migrator.lua:146: in function <...app/.rocks/share/tarantool/migrator.lua:142>
[C]: in function 'xpcall'
...app/.rocks/share/tarantool/errors.lua:145: in function <...app/.rocks/share/tarantool/errors.lua:139>
[C]: at 0x00625bd0
2022-07-18 19:31:51.547 [5147] main/164/localhost:3302 migrator.lua:75 W> Cannot apply migrations on localhost:3302: {"line":534,"class_name":"migrator","err":"\/home\/tarantool\/app\/init.lua:47: attempt to index local 'sp' (a nil value)","file":"builtin\/box\/schema.lua","str":"migrator: \/home\/tarantool\/app\/init.lua:47: attempt to index local 'sp' (a nil value)","stack":"stack traceback:\n\tbuiltin\/box\/schema.lua:534: in function 'drop'\n\t...app\/migrations\/07_issue_with_drop_space.lua:40: in function <...app\/migrations\/07_issue_with_drop_space.lua:2>\n\t[C]: in function 'xpcall'\n\t...app\/.rocks\/share\/tarantool\/errors.lua:145: in function 'pcall'\n\t...app\/.rocks\/share\/tarantool\/migrator.lua:146: in function <...app\/.rocks\/share\/tarantool\/migrator.lua:142>\n\t[C]: in function 'xpcall'\n\t...app\/.rocks\/share\/tarantool\/errors.lua:145: in function <...app\/.rocks\/share\/tarantool\/errors.lua:139>\n\t[C]: at 0x00625bd0"}
2022-07-18 19:31:51.547 [5147] main/163/localhost:3301 migrator.lua:75 W> Cannot apply migrations on localhost:3301: {"line":534,"class_name":"migrator","err":"\/home\/tarantool\/app\/init.lua:47: attempt to index local 'sp' (a nil value)","file":"builtin\/box\/schema.lua","str":"migrator: \/home\/tarantool\/app\/init.lua:47: attempt to index local 'sp' (a nil value)","stack":"stack traceback:\n\tbuiltin\/box\/schema.lua:534: in function 'drop'\n\t...app\/migrations\/07_issue_with_drop_space.lua:40: in function <...app\/migrations\/07_issue_with_drop_space.lua:2>\n\t[C]: in function 'xpcall'\n\t...app\/.rocks\/share\/tarantool\/errors.lua:145: in function 'pcall'\n\t...app\/.rocks\/share\/tarantool\/migrator.lua:146: in function <...app\/.rocks\/share\/tarantool\/migrator.lua:142>\n\t[C]: in function 'xpcall'\n\t...app\/.rocks\/share\/tarantool\/errors.lua:145: in function <...app\/.rocks\/share\/tarantool\/errors.lua:139>\n\t[C]: at 0x00625bd0"}
2022-07-18 19:31:51.547 [5147] main/165/localhost:3304 migrator.lua:75 W> Cannot apply migrations on localhost:3304: {"line":534,"class_name":"migrator","err":"\/home\/tarantool\/app\/init.lua:47: attempt to index local 'sp' (a nil value)","file":"builtin\/box\/schema.lua","str":"migrator: \/home\/tarantool\/app\/init.lua:47: attempt to index local 'sp' (a nil value)","stack":"stack traceback:\n\tbuiltin\/box\/schema.lua:534: in function 'drop'\n\t...app\/migrations\/07_issue_with_drop_space.lua:40: in function <...app\/migrations\/07_issue_with_drop_space.lua:2>\n\t[C]: in function 'xpcall'\n\t...app\/.rocks\/share\/tarantool\/errors.lua:145: in function 'pcall'\n\t...app\/.rocks\/share\/tarantool\/migrator.lua:146: in function <...app\/.rocks\/share\/tarantool\/migrator.lua:142>\n\t[C]: in function 'xpcall'\n\t...app\/.rocks\/share\/tarantool\/errors.lua:145: in function <...app\/.rocks\/share\/tarantool\/errors.lua:139>\n\t[C]: at 0x00625bd0"}
2022-07-18 19:31:51.547 [5147] main/162/http/127.0.0.1:36512 migrator.lua:94 E> Errors happened during migrations: ["...app\/.rocks\/share\/tarantool\/migrator.lua:76: {\"line\":534,\"class_name\":\"migrator\",\"err\":\"\\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"file\":\"builtin\\\/box\\\/schema.lua\",\"str\":\"migrator: \\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"stack\":\"stack traceback:\\n\\tbuiltin\\\/box\\\/schema.lua:534: in function 'drop'\\n\\t...app\\\/migrations\\\/07_issue_with_drop_space.lua:40: in funct","...app\/.rocks\/share\/tarantool\/migrator.lua:76: {\"line\":534,\"class_name\":\"migrator\",\"err\":\"\\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"file\":\"builtin\\\/box\\\/schema.lua\",\"str\":\"migrator: \\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"stack\":\"stack traceback:\\n\\tbuiltin\\\/box\\\/schema.lua:534: in function 'drop'\\n\\t...app\\\/migrations\\\/07_issue_with_drop_space.lua:40: in funct","...app\/.rocks\/share\/tarantool\/migrator.lua:76: {\"line\":534,\"class_name\":\"migrator\",\"err\":\"\\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"file\":\"builtin\\\/box\\\/schema.lua\",\"str\":\"migrator: \\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"stack\":\"stack traceback:\\n\\tbuiltin\\\/box\\\/schema.lua:534: in function 'drop'\\n\\t...app\\\/migrations\\\/07_issue_with_drop_space.lua:40: in funct"]
2022-07-18 19:31:51.547 [5147] main/162/http/127.0.0.1:36512 server.lua:804 E> unhandled error: ...app/.rocks/share/tarantool/migrator.lua:95: Errors happened during migrations: ["...app\/.rocks\/share\/tarantool\/migrator.lua:76: {\"line\":534,\"class_name\":\"migrator\",\"err\":\"\\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"file\":\"builtin\\\/box\\\/schema.lua\",\"str\":\"migrator: \\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"stack\":\"stack traceback:\\n\\tbuiltin\\\/box\\\/schema.lua:534: in function 'drop'\\n\\t...app\\\/migrations\\\/07_issue_with_drop_space.lua:40: in funct","...app\/.rocks\/share\/tarantool\/migrator.lua:76: {\"line\":534,\"class_name\":\"migrator\",\"err\":\"\\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"file\":\"builtin\\\/box\\\/schema.lua\",\"str\":\"migrator: \\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"stack\":\"stack traceback:\\n\\tbuiltin\\\/box\\\/schema.lua:534: in function 'drop'\\n\\t...app\\\/migrations\\\/07_issue_with_drop_space.lua:40: in funct","...app\/.rocks\/share\/tarantool\/migrator.lua:76: {\"line\":534,\"class_name\":\"migrator\",\"err\":\"\\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"file\":\"builtin\\\/box\\\/schema.lua\",\"str\":\"migrator: \\\/home\\\/tarantool\\\/app\\\/init.lua:47: attempt to index local 'sp' (a nil value)\",\"stack\":\"stack traceback:\\n\\tbuiltin\\\/box\\\/schema.lua:534: in function 'drop'\\n\\t...app\\\/migrations\\\/07_issue_with_drop_space.lua:40: in funct"]
stack traceback:
...app/.rocks/share/tarantool/http/server.lua:802: in function 'process_client'
...app/.rocks/share/tarantool/http/server.lua:1262: in function <...app/.rocks/share/tarantool/http/server.lua:1261>
[C]: in function 'pcall'
builtin/socket.lua:1081: in function <builtin/socket.lua:1079>