В базе в таблице shop_category увеличьте значение полей url и full_url

В процессе импорта данных с Webasyst Shop-Script v.308 в Shop-Script 5 выяснилось, что на старом скрипте была модифицирована БД и увеличены размеры столбцов url и full_url.
Есть товары и категории с ID по 300 и более символов.
Нужно в базе в таблице shop_category увеличьте значение полей url и full_url которые сейчас varchar(255)
Проблема в том, что в этих столбцах стоит проверка на уникальность, поэтому приобразовать их в TEXT нельзя.
Получаем ошибки:
#1071 - Specified key was too long; max key length is 1000 bytes
и при попытке изменить тип:
Ошибка запроса:
#1170 - BLOB/TEXT column 'full_url' used in key specification without a key length

Вебасистовкая техподдержка помагать отказалась. Написали:
Поле, отвечающее за хранение ссылки в старых скриптах имеет тот же тип и размер - varchar(255), причем 255 - это максимальная длина поля. В старой версии изменение типа поля было возможным, в новой версии это сделать не так просто - требуется внесение изменений в другие параметры БД. Рекомендуем отменить изменения в старой версии скриптов, в этом случае ошибка не возникнет.
Согласно условиям предоставления программных продуктов Webasyst, поддержка по вопросам модификации программного кода и настройки дизайна веб-страниц нашей службой поддержки не оказывается.

Кто-нибудь может помочь в этом вопросе?

P.S. Если найду решение, опубликую тут.

3 ответа

  • 1
    Eugen Nichikov 29 марта 2014 15:56 #
    Алексей, Вы varchar большего размера сделать не пробовали?
    Как-то так:
    ALTER TABLE `shop_category` CHANGE `url` `url` VARCHAR( 330);
    ALTER TABLE `shop_category` CHANGE `full_url` `full_url` VARCHAR( 330)
  • 3
    Пробовал.
    330 недостаточно. Нужно, минимум 500-1000.
    Разработчики отказываются помогать категорически. (
    • +1
      Eugen Nichikov Eugen Nichikov 30 марта 2014 11:22 #
      Можно попробовать убить индексы
      ALTER TABLE shop_category DROP INDEX url;
      ALTER TABLE shop_category DROP INDEX full_url;

      А потом увеличить длину поля до 1000.
      Правда, в таком случае можно будет указывать неуникальные ссылки.

      Работоспособность не гарантирую :)

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите