Hello! I'm new to Oracle databases and systems, so please correct me if I use any terminology incorrectly.
Using sqlcl connected to an existing Oracle 12c database I ran the command:
lb genschema
It ran for 6 hours before it returned an error stating that it had a stack overflow. It spent a majority of the time on "[Method processCaptureTable]:"
SQL> lb genschema
[Method loadCaptureTable]:
Executing
[Type - TYPE_SPEC]: 11190 ms
[Type - TYPE_BODY]: 1264 ms
[Type - SEQUENCE]: 387 ms
[Type - DIRECTORY]: 75 ms
[Type - CLUSTER]: 962 ms
[Type - TABLE]: 91965 ms
[Type - MATERIALIZED_VIEW_LOG]: 3320 ms
[Type - MATERIALIZED_VIEW]: 26651 ms
[Type - VIEW]: 143307 ms
[Type - REF_CONSTRAINT]: 161 ms
[Type - DIMENSION]: 254 ms
[Type - FUNCTION]: 1176 ms
[Type - PROCEDURE]: 1318 ms
[Type - PACKAGE_SPEC]: 365993 ms
[Type - DB_LINK]: 106 ms
[Type - SYNONYM]: 123790 ms
[Type - INDEX]: 7957 ms
[Type - TRIGGER]: 17493 ms
[Type - JOB]: 1890 ms
End
[Method loadCaptureTable]: 3760090 ms
[Method processCaptureTable]: Exception in thread "main" java.lang.StackOverflowError
at java.base/java.lang.StringBuilder.<init>(StringBuilder.java:99)
at oracle.dbtools.parser.Earley.tree(Earley.java:751)
at oracle.dbtools.parser.Earley.tree(Earley.java:804)
at oracle.dbtools.parser.Earley.tree(Earley.java:810)
at oracle.dbtools.parser.Earley.tree(Earley.java:764)
at oracle.dbtools.parser.Earley.tree(Earley.java:804)
at oracle.dbtools.parser.Earley.tree(Earley.java:810)
at oracle.dbtools.parser.Earley.tree(Earley.java:764)
at oracle.dbtools.parser.Earley.tree(Earley.java:804)
at oracle.dbtools.parser.Earley.tree(Earley.java:810)
at oracle.dbtools.parser.Earley.tree(Earley.java:764)
at oracle.dbtools.parser.Earley.tree(Earley.java:804)
at oracle.dbtools.parser.Earley.tree(Earley.java:810)
... it repeats with lines 764, 804, 810 for hundreds of lines.
I am assuming that our database might be too big or cumbersome, but wanted to see if there were any suggestions for how to work around this. My goal is to implement devops best practices for this database. Most advice I've read online suggests that I get a baseline schema/ state of the database and then use a migration based approach to version control the changes applied after the baseline. Liquibase seems to be ideal for this, but the sqlcl vs native differences aren't very clear yet, so I'm testing them both out for now.
Any advice is welcome! Thank you in advance!