Хорошо, мне удалось решить эту проблему, на случай, если кому-то понадобится в будущем:
На консоли H2 есть инструмент для резервного копирования любой БД в файл .sql (доступный в меню ИНСТРУМЕНТЫ),но поскольку БД в памяти существует только в работающем процессе, к нему нельзя получить доступ с помощью H2 Shell, только через консоль, встроенную в приложение весенней загрузки.
Консоль H2 использует много JavaScript, поэтомув среде только для командной строки было почти невозможно использовать его с браузерами командной строки (казалось, что я использую VI впервые ...), но проверка работы локально работающей доступной консоли дала ответ:
Инструмент Script использует следующий формат аргумента запроса (измените его в соответствии с вашей конфигурацией):
tool: Script
args: -url,jdbc:h2:mem:testdb,-user,sa,-script,~/backup.sql
Таким образом, чтобы сделать резервную копию базы данных:
- sh вконтейнер
wget http://localhost:8080/h2
.Источник HTML будет иметь ссылку на login.jsp?jsessionid=xxxxx
.Используйте этот идентификатор сеанса в команде curl. - Отправьте необходимые данные в инструмент
Script
в формате URL в кодировке:
curl -d "tool=Script&args=-url%2Cjdbc%3Ah2%3Amem%3Atestdb%2C-user%2Csa%2C-script%2C%7E%2backup.sql" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://localhost:8080/h2/tools.do?jsessionid=xxxx
Если вы все сделали правильно,резервный SQL должен быть в указанном месте.