Ich kann meine eingebaute Datenbank nicht auf "update
" setzen. Es ist immer gelöscht, wenn ich die App verlassen, als ob immer noch auf 'create-drop
'.Grails - Die eingebaute Datenbank konnte nicht auf "update" gesetzt werden
Es kann nützlich sein zu wissen, dass ich eine MySQL-Datenbank verwendet habe, und zurück in die eingebaute Datenbank, um das Projekt mit Freunden teilen zu können, die nicht wissen, wie man eine SQL-Datenbank oder Tomcat einstellt Server.
Hier ist meine DataSource.groovy
Datei:
dataSource {
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:h2:mem:myAppDevDb;MVCC=TRUE"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:myAppTestDb;MVCC=TRUE"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:h2:myAppProdDb;MVCC=TRUE"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
}
Jede Hilfe sehr geschätzt. Vielen Dank im Voraus.
Ja. Bitte beachten Sie, dass mit dieser URL die Datei 'somefile' im aktuellen Arbeitsverzeichnis erstellt wird, in dem die Anwendung läuft. Es könnte sicherer sein, einen absoluten Pfad zu verwenden, zum Beispiel 'jdbc: h2:/data/db/somefile: myAppDevDb; MVCC = TRUE' oder relativ zum aktuellen Home-Verzeichnis des Benutzers:' jdbc: h2: ~/somefile: myAppDevDb; MVCC = TRUE' –
Vielen Dank. Es verhält sich wie erwartet. –