Hi,
I created a schema on iSeries, with the SQL command (not the CRTLIB command).
I run Liquibase (3.0.7) for a first update
- liquibase --driver=com.ibm.as400.access.AS400JDBCDriver --classpath=lib/jt400-full-6.0.jar
- --changeLogFile=shipsproto/db.changelog.xml --url="jdbc:as400:TSTHNN1/ISH820000S" --username=xxx --password=xxx update
LB creates the DatabaseChangeLog and its Lock table, and starts with the migration.
- Connected to DGRFL@jdbc:as400:TSTHNN1/ISH820000S
- Setting auto commit to false from true
- Create Database Lock Table
- Executing EXECUTE database command: CREATE TABLE ISH820000S.DATABASECHANGELOGLOCK (ID INTEGER NOT NULL, LOCKED SMALLINT NOT NULL, LOCKGRANTED TIMESTAMP, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DBCHGLOGLOCK PRIMARY KEY (ID))
- Created database lock table with name: ISH820000S.DATABASECHANGELOGLOCK
- Executing QUERY database command: select count(*) from ISH820000S.DATABASECHANGELOGLOCK
- Initialize Database Lock Table
- Executing EXECUTE database command: DELETE FROM ISH820000S.DATABASECHANGELOGLOCK
- Executing EXECUTE database command: INSERT INTO ISH820000S.DATABASECHANGELOGLOCK (ID, LOCKED) VALUES (1, 0)
- Executing QUERY database command: SELECT LOCKED FROM ISH820000S.DATABASECHANGELOGLOCK WHERE ID=1
- Lock Database
- Executing UPDATE database command: UPDATE ISH820000S.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'PSADE867 (10.192.171.173)', LOCKGRANTED = TIMESTAMP('2013-12-20 12:32:29.468') WHERE ID = 1 AND LOCKED = 0
- INFO : Successfully acquired change log lock
- Create Database Change Log Table
- INFO : Creating database history table with name: ISH820000S.DATABASECHANGELOG
- Executing EXECUTE database command: CREATE TABLE ISH820000S.DATABASECHANGELOG (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED TIMESTAMP NOT NULL, ORDEREXECUTED INTEGER NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20))
- INFO : Reading from ISH820000S.DATABASECHANGELOG
However, upon a second run of LB (after fixing an error in a changeset), the DatabaseChangeLog file is not found, although according to the logging the databasechangeloglock file is found.
- Connected to DGRFL@jdbc:as400:TSTHNN1/ISH820000S
- Setting auto commit to false from true
- Executing QUERY database command: select count(*) from ISH820000S.DATABASECHANGELOGLOCK
- Executing QUERY database command: SELECT LOCKED FROM ISH820000S.DATABASECHANGELOGLOCK WHERE ID=1
- Lock Database
- Executing UPDATE database command: UPDATE ISH820000S.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'PSADE867 (10.192.171.173)', LOCKGRANTED = TIMESTAMP('2013-12-20 12:34:44.540') WHERE ID = 1 AND LOCKED = 0
- INFO : Successfully acquired change log lock
- Checking DATABASECHANGELOG.TSTHNN1 for auto-increment with SQL: 'select ID from TSTHNN1.DATABASECHANGELOG where 0=1'
- Release Database Lock
- Executing UPDATE database command: UPDATE ISH820000S.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1
- INFO : Successfully released change log lock
- SEVERE : liquibase.exception.DatabaseException: java.sql.SQLException: [SQL0204] DATABASECHANGELOG in TSTHNN1 type *FILE not found.
- liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: java.sql.SQLException: [SQL0204] DATABASECHANGELOG in TSTHNN1 type *FILE not found.
- at liquibase.database.AbstractJdbcDatabase.checkDatabaseChangeLogTable(AbstractJdbcDatabase.java:646)
- at liquibase.Liquibase.checkDatabaseChangeLogTable(Liquibase.java:614)
- at liquibase.Liquibase.update(Liquibase.java:132)
- at liquibase.integration.commandline.Main.doMigration(Main.java:864)
- at liquibase.integration.commandline.Main.main(Main.java:133)
Any idea?
Regards
Luc