Ao alterar nome do pacote ocorreu erro Indices
15/09/2014 22:40
0
Boa noite pessoal.

Eu tinha uma classe Usuario em um pacote com.qualquercoisa.seguranca, acabei reorganizando o nome do pacote para com.novonome.seguranca.

Alterei aos imports de todas as classes que referenciavam ao Usuario e ao iniciar a aplicação ocorrer alguns erros de índices. Exemplo

Error 2014-09-15 22:34:24,169 [localhost-startStop-1] ERROR hbm2ddl.SchemaUpdate - Unsuccessful: alter table anotacao add index FKDB39A1A2405174AA (criador_id), add constraint FKDB39A1A2405174AA foreign key (criador_id) references sec_user (id)
| Error 2014-09-15 22:34:24,170 [localhost-startStop-1] ERROR hbm2ddl.SchemaUpdate - Cannot add or update a child row: a foreign key constraint fails (`imobiliaria`.`#sql-24d_8d`, CONSTRAINT `FKDB39A1A2405174AA` FOREIGN KEY (`criador_id`) REFERENCES `sec_user` (`id`))

Alguem consegue dar um help?

Valeu
Tags: indices, pacote, alterar nome pacote


1
Mudar uma classe de domínio de lugar, desde que esta ainda esteja dentro do diretório grails-app/domain não altera as instruções de atualização de banco de dados.

Minha sugestão neste caso Leandro, é verificar se houve alguma outra alteração no conteúdo destas classes, e não somente do local em que esta se encontra.


0
Fera,

Não acho que isso seja um erro gerado pela alteração do nome do pacote.
É um erro de banco.
Mas, se você ja desfez as alterações e verificou se o erro ainda ocorria e a aplicação funcionou de boa.. você pode tenta limpar os caches da sua aplicação na pasta .grails.


Mas eu apostaria num erro de banco. Você não fez nenhuma alteração nas tabelas?
no Schema? Alguma FK?



0
Consegui resolver hoje. :-)

De alguma forma que eu não sei, foi alterado o engine da tabela de InnoDB para MyISAM, como o tipo MyISAM não mantem validação de FK existia alguns registros que referenciavam um ID que já tinha sido excluído.

Ao iniciar ele tentava alterar o engine para InnoDB e criar o índice com FK mais o banco não deixava. A solução foi excluir esses registros "fantasma" e mudar o engine da tabela para InnoDB na mão.

Feito isso e reiniciado o sistema os índices foram criados sem erro e funcionou perfeito.

Obrigado pelas respostas.

Abraços
22/09/2014 12:44



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto