plugin intellij idea community grails intellij-idea h2

grails - idea - intellij sql



Conéctese a la base de datos H2 utilizando el cliente de base de datos IntelliJ (4)

La aplicación My Grails usa una base de datos h2 en modo dev (el comportamiento predeterminado para las aplicaciones Grails). Las configuraciones de conexión DB en DataSource.groovy son

dataSource { pooled = true jmxExport = true driverClassName = "org.h2.Driver" username = "sa" password = "" dbCreate = "create-drop" // one of ''create'', ''create-drop'', ''update'', ''validate'', '''' url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE" }

Estoy intentando configurar una conexión para esta base de datos utilizando las herramientas de cliente de base de datos de IntelliJ IDEA. Empiezo creando la conexión como tal.

Luego en el siguiente cuadro de diálogo, entro en la URL de JDBC

Y elija todas las bases de datos disponibles en la pestaña "Esquemas y tablas".

El botón "Conexión de prueba" indica éxito, pero como se puede ver en el círculo rojo, no se encuentran tablas. Parece que he configurado correctamente una conexión al servidor h2, pero no el esquema en sí.

Por cierto, trato de configurar esta conexión una vez que la aplicación se está ejecutando, así que estoy seguro de que el esquema / las tablas realmente existen.





Su configuración es para una base de datos h2:mem . Las bases de datos de memoria no tienen tablas al conectarse, y todas las tablas se pierden cuando se cierran todas las conexiones. Además, un (nombrado) en la base de datos de memoria es único para el proceso JVM que lo abre. De la documentación H2 :

A veces se requieren múltiples conexiones a la misma base de datos en memoria. En este caso, la URL de la base de datos debe incluir un nombre. Ejemplo: jdbc: h2: mem: db1. El acceso a la misma base de datos utilizando esta URL solo funciona dentro de la misma máquina virtual y entorno de cargador de clases. (Énfasis añadido)

Esto significa que IDEA creará un devDb único en su espacio JVM (y classloader) y su aplicación creará un devDb único en su espacio JVM (y classloader). No puede conectarse a una base de datos en memoria desde un proceso JVM externo.

Si desea conectar tanto su aplicación como IntelliJ IDEA (o cualquier otra herramienta de base de datos) a una base de datos H2 al mismo tiempo, deberá:

  1. use una base de datos integrada (que escribe en un archivo) en su aplicación y use el Mixed Mode para permitir que IntelliJ IDEA (y / u otras herramientas de base de datos) se conecten a ella
  2. usar una base de datos en modo servidor

Consulte http://www.h2database.com/html/features.html#connection_modes para obtener más información.