-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Oracle temporary table on generateChangeLog is created as normal table #1516
Comments
@VGoudkov Thanks for taking the time to write up this issue. We will add it to our list of issues to process. |
Hello @VGoudkov, sorry for the late response, we're trying to catch up on older tickets in our backlog. I was able to replicate this issue both with Liquibase version 4.1.1 and 4.23.0, and with a more recent version of Oracle. I will be forwarding this to the development team so they can evaluate how to move forward. Thank you, |
In addition Oracle Queue tables are generated as normal tables. Oracle queue tables must be created using sys.dbms_aqadm.create_queue_table. It would be better to exclude them from generateChangelog rather than generating wrong ddl for them. All queue tables are found in the oracle data dictionary views |
Since Liquibase v4.19.0 we have a new For @hel1e case, I think the best case would be to ignore those tables. What do you think? |
Yes, I think it is better if you ignore objects you don't handle instead of creating a changelog which will produce the wrong result. But if you could also just add a comment in the generated changelog, or a summary report telling which objects have been ignored, that would be quite helpful! I have also discovered a few other Oracle related things that are not supported correctly by generate-changelog: |
@filipelautert I took a look at your code change, and added a comment to the change you made to liquibase-standard/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java. You don't actually filter out the queue-tables here as far as I can see. You will need to also add a where clause: |
Environment
Liquibase Version:
4.1.1 #10
Liquibase Integration & Version: <Pick one: CLI, maven, gradle, spring boot, servlet, etc.>
CLI
Liquibase Extension(s) & Version:
Database Vendor & Version:
Oracle 12.2
Operating System Type & Version:
Win10
Description
Sometimes Hibernate generates following table(s)
CREATE GLOBAL TEMPORARY TABLE HT_AAA (ID NUMBER(19) NOT NULL) ON COMMIT DELETE ROWS;
GenerateChangelog creates standard changeSet, which leads to create normal (not temporary) table:
Steps To Reproduce
The text was updated successfully, but these errors were encountered: