Duplicate identifiers

Hi,

I’m trying to do a fresh install of my project on a clean Oracle database, using the trunk’s code, and it keeps telling me that found duplicate changesets :

    INFO 15-03-2010 11:18:liquibase: Could not set remarks reporting on OracleDatabase: liquibase.database.JdbcCon nection.setRemarksReporting(boolean) DEBUG 15-03-2010 11:18:liquibase: Lock Database INFO 15-03-2010 11:18:liquibase: Successfully acquired change log lock DEBUG 15-03-2010 11:18:liquibase: includeAll for install/tab/ DEBUG 15-03-2010 11:18:liquibase: Using file opener for includeAll: liquibase.resource.CompositeResourceAccess or DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\avaliador.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\avaliador_hab_academic a.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\avaliador_sit_profissi onal.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\candidatura_acreditaca o.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\candidatura_adopcao.xm l DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\candidatura_avaliacao. xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\candidatura_processo.x ml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\comissao_apreciacao.xm l DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\documento_avaliador.xm l DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\documento_candidatura. xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\documento_manual.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\editora.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\entidade_avaliadora.xm l DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\equipa_avaliador.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\equipa_cientifico_peda gogica.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\historico_estado_candi datura.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\historico_instancia_gr elha_avaliacao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\instancia_grelha_avali acao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\instancia_item_grelha. xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\lista_valor.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\manual_adopcao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\manual_escolar.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\membro_comissao_apreci acao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\objecto.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\operacao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\organizacao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\perfil.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\perfil_permissao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\permissao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\processo.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\processo_acreditacao.x ml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\processo_adopcao.xml DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\processo_avaliacao.xml

    DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\registo_auditoria.xml
    DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\template_grelha_avalia
    cao.xml
    DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\template_item_avaliaca
    o.xml
    DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\tipo_lista_valor.xml
    DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab\volume_manual.xml
    DEBUG 15-03-2010 11:18:liquibase: includeAll using path D:\temp\liqui\trunk\install\tab
    DEBUG 15-03-2010 11:18:liquibase: D:\temp\liqui\trunk\install\tab is a directory
    INFO 15-03-2010 11:18:liquibase: Reading from DATABASECHANGELOG
    DEBUG 15-03-2010 11:18:liquibase: Release Database Lock
    INFO 15-03-2010 11:18:liquibase: Successfully released change log lock

    liquibase.exception.ValidationFailedException: Validation Failed:
        42 change sets had duplicate identifiers
              install/tab/template_item_avaliacao.xml::1::nuno.carvalho
              install/tab/instancia_item_grelha.xml::1::nuno.carvalho
              install/tab/processo_avaliacao.xml::1::nuno.carvalho
              install/tab/objecto.xml::1::nuno.carvalho
              install/tab/membro_comissao_apreciacao.xml::1::nuno.carvalho
              install/tab/tipo_lista_valor.xml::1::nuno.carvalho
              install/tab/organizacao.xml::1::nuno.carvalho
              install/tab/editora.xml::1::nuno.carvalho
              install/tab/permissao.xml::1::nuno.carvalho
              install/tab/candidatura_acreditacao.xml::1::nuno.carvalho
              install/tab/candidatura_adopcao.xml::1::nuno.carvalho
              install/tab/volume_manual.xml::1::nuno.carvalho
              install/tab/perfil_permissao.xml::1::nuno.carvalho
              install/tab/documento_candidatura.xml::1::nuno.carvalho
              install/tab/documento_manual.xml::1::nuno.carvalho
              install/tab/perfil_permissao.xml::1::nuno.carvalho
              install/tab/entidade_avaliadora.xml::1::nuno.carvalho
              install/tab/comissao_apreciacao.xml::1::nuno.carvalho
              install/tab/perfil_permissao.xml::1::nuno.carvalho
              install/tab/processo_adopcao.xml::1::nuno.carvalho
              install/tab/historico_instancia_grelha_avaliacao.xml::1::nuno.carvalho
              install/tab/manual_escolar.xml::1::nuno.carvalho
              install/tab/processo.xml::1::nuno.carvalho
              install/tab/perfil.xml::1::nuno.carvalho
              install/tab/candidatura_processo.xml::1::nuno.carvalho
              install/tab/manual_adopcao.xml::1::nuno.carvalho
              install/tab/avaliador.xml::1::nuno.carvalho
              install/tab/instancia_grelha_avaliacao.xml::1::nuno.carvalho
              install/tab/avaliador_hab_academica.xml::1::nuno.carvalho
              install/tab/candidatura_avaliacao.xml::1::nuno.carvalho
              install/tab/equipa_cientifico_pedagogica.xml::1::nuno.carvalho
              install/tab/operacao.xml::1::nuno.carvalho
              install/tab/documento_avaliador.xml::1::nuno.carvalho
              install/tab/equipa_avaliador.xml::1::nuno.carvalho
              install/tab/equipa_avaliador.xml::1::nuno.carvalho
              install/tab/avaliador_sit_profissional.xml::1::nuno.carvalho
              install/tab/historico_estado_candidatura.xml::1::nuno.carvalho
              install/tab/lista_valor.xml::1::nuno.carvalho
              install/tab/template_grelha_avaliacao.xml::1::nuno.carvalho
              install/tab/equipa_avaliador.xml::1::nuno.carvalho
              install/tab/processo_acreditacao.xml::1::nuno.carvalho
              install/tab/registo_auditoria.xml::1::nuno.carvalho

            at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:132)
            at liquibase.Liquibase.update(Liquibase.java:97)
            at liquibase.integration.commandline.Main.doMigration(Main.java:665)
            at liquibase.integration.commandline.Main.main(Main.java:105)

As you can see all changeset string are different. Here is my changelog file :

    <?xml version="1.0" encoding="UTF-8" standalone="no"?> http://www.liquibase.org/xml/ns/dbchangelog"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">    

The liquibase.properties :

    driver: oracle.jdbc.OracleDriver classpath: D:/Develop/liquibase-2.0-rc2-SNAPSHOT-bin/lib/ojdbc6.jar logLevel: debug url: jdbc:oracle:thin:@host:1521:sid username: user password: password

Forgot to mention that I’m on Windows 7 64 bit with jdk1.6.0_18 32 bit.

Thanks

I found that without the relativeToChangelogFile attribute the changesets are included twice in the changeset list that will run.

When doing resource enumeration for the given path, XMLChangeLogParser also includes the path as a resource so it will read all children (*.xml and *.sql) again.

I’ll have to look into it more.  I created http://liquibase.jira.com/browse/CORE-571 to track it

Nathan