Спасибо, Мики! У меня такая же проблема! Действительно, посмотрите на
grails-app/conf/DataSource.groovy
По крайней мере, в моем случае, JDBC URL может быть установлен в JDBC: h2: мем: devDb для разработки баз данных, jdbc:h2:mem:testDb
для тестовой базы данных, а также jdbc:h2:mem:prodDb
для базы данных.
Консоль не имеет возможности узнать, какой из них вы предпочитаете, поэтому она по умолчанию проверяет. Кроме того, если вы нажмете «URL JDBC» в режиме dbconsole в браузере, он покажет вам несколько советов. В частности, в нем объясняется, что «URL-адрес jdbc: h2: ~/test означает, что база данных хранится в домашнем каталоге пользователя в файлах, начинающихся с« теста »». Действительно, в моем домашнем каталоге у меня теперь есть test.h2.db
, test.lock.db
и test.trace.db
. Это также объясняет, почему данные не сохраняются по умолчанию. Разве вы не заметили, что при настройке по умолчанию каждый раз, когда вы перезапускаете Grails, вам нужно воссоздать все объекты? Ну, это из-за части «: mem:» в URL JDBC.
Этот по умолчанию, вероятно, не имеет никакого отношения к Grails; Я бы предположил, что H2 просто создает тестовую базу данных в вашем домашнем каталоге по умолчанию, если не указано иное. Я также предполагаю, что у вас может быть много разных баз данных в сложной производственной среде, и именно поэтому Grails не пытается угадать, что именно вы хотите.
См. Также official H2 documentation
Ваш URL-адрес вашей базы данных в настоящее время? –
Для меня правильный ответ: 'jdbc: h2: mem: devDb; MVCC = TRUE' – Mikey
Но моя dbconsole по умолчанию пытается перейти на' jdbc: h2: ~/test'. – Mikey