I’m using liquibase 3.1.1 and oracle 11g.
I used the generateChangeLog command from the command line against my development database. Then I used the updateDatabase command from ant against a new schema. So basically I’m exporting from one schema to create a base set of ddl and then using it to create a new schema.
The updateDatabase command worked perfectly until it got to this changeset:
It fails with an Oracle error:
Error executing SQL CREATE UNIQUE INDEX LIQUIBASE.PRACTICE_U1 ON LIQUIBASE.PRACTICE(SYS_NC00028$): ORA-00904: “SYS_NC00028$”: invalid identifier
But if I go into Toad and ask it to create the script for that index I get this:
DROP INDEX EMR.PRACTICE_U1;
CREATE UNIQUE INDEX EMR.PRACTICE_U1 ON EMR.PRACTICE
(UPPER(“DIRECTADDRESSDOMAIN”))
LOGGING
TABLESPACE EMRD
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
NOPARALLEL;
Other indexes were created correctly. It’s just this one that has a problem. Why would liquibase have gotten that column name?