Hi all, how is it going?
In the Liquibase Tutorial using Oracle it shows the contents of an install.xml file, that includes package specifications (pks) and package bodies (pkb), the order of installation is very logical, (tables, then sequences, constraints, package specifications, views, package bodies, and triggers)
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
But there are more object types to consider in Oracle: functions, procedures and database links are the ones that come to my mind right now.
Functions and procedures aren’t as easy to deal with as packages, there is no spec, so there might be invalid objects after compilation because of dependencies if objects are not compiled in the correct order, what should I do then? I guess you’ll say that I’ve got to explicitly indicate order of compilation in the changeset, that wouldn’t be so easy on a big project with many objects, not as easy as the changeset defined above.
The worst scenario:
What if there is a function A which calls function B, and B calls A too (I know that is not very common, but it can happen, specially in big projects), what order should compilation take? What if any order in changeset takes me to a compilation with errors? Would that be considered an unsuccessful migration?
If there is no way to save me from a compilation with errors, what should I do then? should I try to compile all invalid objects over and over again until there are no invalid objects? Can Liquibase help me with that?
Thank you for your help.