H2Database
Einführung
Der große Vorteil von H2Database ist, dass kein Datenbankserver benötigt wird, da es eingebettet in Anwendungen betrieben werden kann.
H2Database wird nur für Entwicklungs- und Testzwecke empfohlen; in der Produktion sollte ein anderer, zuverlässigerer Datenbanktyp verwendet werden.
Empfehlungen und Einschränkungen
H2Database erlaubt nicht, dass mehr als ein einziger Prozess auf die Datenbankdatei zugreift.
Wenn Sie die Datei bearbeiten oder über die Web-Konsole zugreifen möchten, müssen Sie daher die Ausführung von Netuno stoppen.
Datenbankdateien
Die Datenbankdateien von H2Database befinden sich im Ordner dbs innerhalb der Anwendung, zum Beispiel:
apps/meine_app/dbs
Wenn Sie die Datenbank umbenennen möchten, ändern Sie den Dateinamen und korrigieren Sie die Anwendungskonfiguration, zum Beispiel in der Umgebung development:
config/_development.json
Die Korrektur muss im Teil der Konfiguration der Datenbankverbindung erfolgen:
...
"db": {
"default": {
"password": "",
"engine": "h2",
"port": "",
"host": "",
"name": "meine_db",
"username": ""
}
}
...
Web-Konsole
Es kann notwendig sein, direkt auf die Datenbank zuzugreifen; in diesem Fall ist dies über die Web-Konsole von H2Database möglich.
Die Web-Konsole wird gestartet, indem das JAR von H2Database direkt wie folgt ausgeführt wird:
java -cp web/WEB-INF/lib/h2-*.jar org.h2.tools.Server
Es wird davon ausgegangen, dass Sie sich im Stammverzeichnis von Netuno befinden.
Um die verfügbaren Optionen anzuzeigen:
java -cp web/WEB-INF/lib/h2-*.jar org.h2.tools.Server -?
Startet die Web-Konsole auf dem Netuno-Port 9000 und erlaubt den Zugriff von externen IPs:
java -cp web/WEB-INF/lib/h2-*.jar org.h2.tools.Server -webPort 9000 -tcpAllowOthers
Sie sollten die Ausführung von Netuno vorher stoppen, um zu vermeiden, dass mehrere Prozesse die Datenbankdatei bearbeiten.
Die JDBC-URL für die Verbindung zur Datenbank sollte lauten:
jdbc:h2:./apps/meine_app/dbs/meine_db;MODE=PostgreSQL;CASE_INSENSITIVE_IDENTIFIERS=TRUE;DATABASE_TO_LOWER=TRUE;DEFAULT_NULL_ORDERING=HIGH;DB_CLOSE_ON_EXIT=TRUE;
Ersetzen Sie den Teil
meine_appdurch den Namen der App undmeine_dbdurch den Namen der entsprechenden Datenbank.
Die Authentifizierung erfolgt mit dem Benutzer sa, jedoch ohne Passwort.
Zugriffe zurücksetzen
Insbesondere wenn der Zugriff des Benutzers dev verloren geht.
Greifen Sie wie oben beschrieben über die Web-Konsole von H2Database zu.
Um den Zugriff neu zu erstellen, löschen Sie die Daten der Tabelle netuno_user, zum Beispiel:
delete from netuno_user
Dadurch erstellt Netuno die Benutzer mit ihren jeweiligen Standardpasswörtern neu, wenn es erneut gestartet wird.