Estou utilizando o Grails para desenvolvimento, mas estou com o seguinte problema:
Consigo “rodar” minha aplicação certinho, consigo fazer a manipulação dos dados, etc. Mas quando paro de executar a aplicação fecho o servidor, meus dados inseridos excluem, e quando abro minha aplicação minha tabela está vazia.
Isso acontece prq vc esta pedindo para grails dar drop e create qndo encerra o Jetty e qndo inicia o novamente.
Mude arquivo: DataSource.groovy o atributo dbCreate para: update
ronnypeterson
Vc deve alterar o arquivo dataSource.groovy q fica em <seu_projeto>/grails-app/conf
No arquivo, em enviroments { …} procure a base q vc deseja trabalhar (teste, desenvolvimento e produção) e altere a propriedade dbCreate = “update”
;
* ‘update’ -> Não apaga o banco de dados, apenas atualiza a estrutura do banco caso algum atributo das classes de dominio seja alterado.
Abraços.
F
Filipe_Motta
Fiz a alteração e continuo com o mesmo problema
o Meu arquivo DataSource.groovy está assim
dataSource {
pooled = true
driverClassName = "org.hsqldb.jdbcDriver"
username = "sa"
password = ""
}
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:mem:testDb"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
}
}
}
ronnypeterson
O Hsqldb está configurado para rodar no modo memória. Por isso os dados “desaparecem” quando vc reinicia a aplicação.
Acessa esse link http://www.guj.com.br/content/articles/hsqldb/hsqldb_guj.pdf e dá uma olhada sobre como funciona o hsqdb. Ou vc pode configurar sua aplicação p rodar em outro Sgbd como Postgres ou MySql.