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