Gravação dos Dados - Grails

5 respostas
F

Bom dia!

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.

Para criação executei os seguintes comandos:

grails create-app teste
grails create-domain-class cliente
grails generate-controller cliente
grails generate-views cliente
grails run-app

Obrigado!

5 Respostas

ramilani12

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”

Opções:

* 'create' -> cria todas as tabelas quando a aplicação é iniciada pela primeira vez;
* 'create-drop' -> A cada alteração das classes de dominio o banco de dados é recriado quando a aplicação é reiniciada;

;
* ‘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

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.

F

Ok… obrigado

Consegui fazer a conexão com o Postgres.

Criado 23 de setembro de 2008
Ultima resposta 23 de set. de 2008
Respostas 5
Participantes 3