Изменить тип столбца БД на лету - PullRequest
0 голосов
/ 29 августа 2018

учитывая java-сервис, который в идеале не должен иметь простоев, я хочу изменить columntype таблицы с varchar на longtext при сохранении сервиса.

служба использует spring -> jpa, hibernate и общается с mysql db.

У сущности есть атрибут mapped, давайте назовем его foobar, обнуляемый как String.

так что сейчас на данный момент это выглядит так:

  • Java-объект: String foobar

  • Столбец MySQL: varchar(255) foobar

и я хочу изменить таблицу, поэтому она будет выглядеть так:

  • Java-сущность: String foobar

  • Столбец MySQL: longtext foobar

ВОПРОС :

Если я изменю столбец mysql и продолжу работу службы java, сможет ли он по-прежнему выполнять чтение / запись в столбец или выдает ошибку?

1 Ответ

0 голосов
/ 01 сентября 2018

Теоретически я бы сказал «Да», изменение должно быть прозрачным. Ведь оба типа представлены в JDBC одним и тем же типом java.sql.Types.VARCHAR.

Однако - это теория - и, поскольку ваше приложение кажется весьма критичным, я бы не стал слепо доверять этой теории.

Простой тест в среде DEV или TEST даст вам ответ.

Просто убедитесь, что вы используете ТОЧНО тот же :

  • Версия базы данных,
  • версия JPA,
  • Hibernate версия,
  • версия JVM,
  • Версия приложения,
  • Библиотеки
  • и т.д.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...