У меня обычно есть необходимость смоделировать производственную базу данных с базой данных в памяти. Производство mysql , и я пытаюсь использовать hsqldb , чтобы смоделировать его, используя Spring Boot для обработки замены. Все это прекрасно работает, включая поиск сценариев flyway и их запуск. Проблема, с которой я столкнулся, возникает во время запуска сценариев flyway . Кто-то в прошлом решил назвать одну из таблиц mysql"_show", и mysql , кажется, вполне доволен этим. Hsqldb не счастлив. Я нашел ссылки на некоторые настройки, которые утверждают, что решают эту проблему, но они, кажется, не имеют никакого значения. Вот как выглядит мой сценарий:
SET DATABASE SQL NAMES FALSE
SET DATABASE SQL REGULAR NAMES FALSE
CREATE TABLE _show (
id bigint(20) NOT NULL,
...
С этим на месте я получаю:
org.hsqldb.HsqlException: unexpected token: _SHOW
, когда flyway пытается выполнить сценарий. Я попытался поместить двойные кавычки вокруг имени таблицы и на этот раз получил другую ошибку об открытой скобке, и я попытался поэкспериментировать с обратной косой чертой, чтобы процитировать подчеркивание. Не повезло. Я думаю, что я как-то неправильно использую флаги SET DATABASE ..., но я не могу найти никаких примеров их использования, просто документы, которые говорят, что я делаю это правильно.
Я использую org.hsqldb: hsqldb: 2.5.0
Спасибо за любую помощь