Подтвердить что ты не робот

Доступ к базе данных проекта воспроизведения с h2-браузером

У меня возникли проблемы с доступом к базе данных mem через h2-browser в проекте Play.

С приведенной ниже конфигурацией, которая, по моему мнению, является правильной (видимо, нет!), я получаю h2-браузер, но без таблиц (помимо схемы, то есть), хотя я применил некоторые миграции.

Что мне здесь не хватает? Спасибо заранее.

конф/application.conf:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user=sa
db.default.password=""

conf

4b9b3361

Ответ 1

Когда вы используете базы данных in-mem, на самом деле вы получаете доступ к двум различным базам данных (хотя и с одним и тем же путем). У вас есть два решения:

  • Сначала с консоли запускайте консоль "play", запустите h2-браузер и, наконец, запустите приложение (в пределах той же консоли play).
  • Запустите H2 в режиме сервера. Дополнительным преимуществом этого подхода является то, что вы не потеряете свои данные при каждом перезапуске приложения, поскольку DB хранится в файле. Затем вы можете получить доступ к этой базе данных из многих точек (также из "автономного" браузера H @или какого-либо другого графического интерфейса) с путём, похожим на:

Unix (~ означает ваш домашний каталог)

db.default.url="jdbc:h2:tcp://localhost/~/some/path/to/MyPlayDB"

или Windows

db.default.url="jdbc:h2:tcp://localhost/c:/some/path/to/MyPlayDB"

Обратите внимание, что для лучшей производительности в режиме производства стоит вернуться к встроенному режиму, однако для dev-stage это решение должно быть достаточно хорошим (еще быстрее, чем для примера MySQL)

Ответ 2

Чтобы просмотреть содержимое своей базы данных с помощью H2 Web Console, запустите как консоль, так и приложение Play через ту же Play консоль:

  • Сначала войдите в консоль Play, запустив Activator Activator:
    ~/Projects/play-app $ activator
  • Запустите веб-консоль:
    [play-app] $ h2-browser
    Это должно открыть консольный интерфейс H2 в вашем браузере.
  • Запустите приложение Play:
    [play-app] $ run
  • Доступ к приложению Play в браузере. Это заставит приложение Play подключиться к базе данных в памяти H2 и инициализировать его некоторыми данными по умолчанию, если они есть.
  • Войдите в веб-консоль H2 в своем браузере, чтобы проверить содержимое базы данных. Используйте следующие настройки, которые вы можете сохранить (например, как Play-App In-Memory Database), чтобы легко получить к ним доступ позже:
    • Класс драйвера: org.h2.Driver
    • URL-адрес JDBC: jdbc:h2:mem:play
    • Имя пользователя: sa
    • Пароль: <blank>

Обратите внимание, что приведенные выше настройки должны соответствовать вашей фактической конфигурации (db.default.url и т.д.).