Olá, Ednaldo.
O que pode ter ocorrido é que quando o GORM criou as tabelas suas classes estavam de um jeito. Dai você deve tê-las alterado mas o GORM não mudou mais a estrutura delas no banco. Isso acontece pois o Hibernate (que o GORM usa por baixo) identifica e cria novas estruturas (campos, relacionamentos, etc) e as efetiva nas tabelas, mas não exclui estruturas não mais mapeadas.
Olá Yoshi, vlw por tentar ajudar mas o problema não é esse, eu conferi o banco.
O campo title sempre foi unique:true e com isso eu achava que conseguia usar o validate do grails e evitar as repetições de titulo.
Daí descobrí que com outro tenant_id o validate não barra e no banco dá erro, afinal de contas o campo é unique true.
Até este ponto o problema seria o validate do grails que verifica se existe outro titulo igual só no mesmo tenantId.
Daí conversei com o pessoal aqui e definimos que poderia ser único por tenant_id, não na tabela toda.
Então mudei pra title (unique:'tenantId'), apaguei o banco e gerei denovo, no banco ficou assim: CONSTRAINT trip_tenant_id_title_key UNIQUE (tenant_id, title)
Porém, dessa forma eu consigo repetir o titulo em tenantIds diferentes mas o validate do grails nunca barra.
Ou seja, salvo um título, depois salvo o mesmo titulo com o mesmo tenantId e o validate do grails passa e dá erro só no banco.
Problema no validate denovo.
Solução até então, criei um service que valida a unicidade e o chamo no save e no update.
PS: À pedidos do Tiago para explecitar o fato que estou usando o plugin multi-tenant, então, estou usando o plugin multi-tenant.
Entendi, Ednaldo.
Talvez esse pluhin multi-tenant esteja interferindo no "validate()".
Abraços.