Size: a a a

2020 June 17

MM

Max Melentiev in Tarantool
Andrey Oleynik
Привет, каким образом можно добавить колонку в sql таблицу с сохраненеим данных? У меня есть мысль создать временную таблицу, перенести туда данные, пересоздать текущую с новой колонкой и заполнить данными из временной таблицы.
В конец спэйса можно добавлять нулабельные поля без проблем. не нулабельные добавляются так же как и в других бд - сначала нулабельное, потом заполняете его, потом делаете ненулабельным
источник

MM

Max Melentiev in Tarantool
насчет sql не знаю, поддерживает ли он такое сейчас
источник

MM

Max Melentiev in Tarantool
*в том смысле есть ли там альтер вообще
источник

DS

Dmitry Sharonov in Tarantool
вроде был
источник

AO

Andrey Oleynik in Tarantool
Я могу заменить формат sql таблицы через lua, добавив в конец нулабельное поле?
источник

MM

Max Melentiev in Tarantool
да
источник

AO

Andrey Oleynik in Tarantool
спасибо, пошел пробовать
источник

DS

Dmitry Sharonov in Tarantool
в целом, сейчас уже нет разделения на sql и луа-таблицы
источник

DS

Dmitry Sharonov in Tarantool
(хотя оно долго было)
источник

MM

Max Melentiev in Tarantool
f = box.space.name:format()
table.insert(f, {'new_field', 'type', is_nullable = true})
box.space.name:format(f)

так примерно
источник

MM

Max Melentiev in Tarantool
но я бы лучше все поля явно пересислил)
источник

AO

Andrey Oleynik in Tarantool
Dmitry Sharonov
в целом, сейчас уже нет разделения на sql и луа-таблицы
с какой-то определенной версии?
источник

DS

Dmitry Sharonov in Tarantool
да, с 2.1 или 2.2, не помню
источник

AO

Andrey Oleynik in Tarantool
Max Melentiev
f = box.space.name:format()
table.insert(f, {'new_field', 'type', is_nullable = true})
box.space.name:format(f)

так примерно
Не удается, получаю следующую ошибку:

- error: 'Can''t modify space ‘’TEST’’: exact_field_count must be either 0 or
   >= formatted field count'
источник

AO

Andrey Oleynik in Tarantool
Andrey Oleynik
Не удается, получаю следующую ошибку:

- error: 'Can''t modify space ‘’TEST’’: exact_field_count must be either 0 or
   >= formatted field count'
источник

DS

Dmitry Sharonov in Tarantool
боже, филд каунт
источник

DS

Dmitry Sharonov in Tarantool
источник

AO

Andrey Oleynik in Tarantool
Получается теперь только через сохранение данных, например в переменную и пересоздание таблицы?
источник

DS

Dmitry Sharonov in Tarantool
не-не, там w/a есть
источник

DS

Dmitry Sharonov in Tarantool
box.space._space:update(your_space.id, {{'=',5,0}})
источник