createProcedure attributes error

Hi all,

I’m a Liquibase newbie and am experimenting with using Liquibase with Oracle.
I use Liquibase Version: 3.5.4
I’m trying to use the createProcedure tag to create a PL/SQL procedure. I referenced the example from the documentation. However, the attributes for that tag cause errors:
Changelog XML:



$ ./liquibase update
Unexpected error running Liquibase: Error parsing line 8 column 45 of …/src/plsql/prc.xml: cvc-complex-type.3.2.2: Attribute ‘comments’ is not allowed to appear in element ‘createProcedure’.

This happens to any attribute I add to the tag.

Am I doing something wrong?

Thanks!
Christoph



It looks like your XSD is referencing version 3.0. It should be 3.5. I’ll take a look at the documentation

Thanks,
Nathan

Looking at the XSD, it looks like it needs to be a nested tag. Like:

  1.    

Thanks Nathan. I changed the XSD to 3.5, but got the same error.


I tried your suggestion. The procedure got created, but the entry in DATABASECHANGELOG did not show the comment. Also, the rollback failed. Shouldn’t the createProcedure automatically suggest the drop command on rollback?


Unexpected error running Liquibase: No inverse to liquibase.change.core.CreateProcedureChange created


Thanks,
C

Procedure syntax varies enough between databases that createProcedure is at the edge of what liquibase tries to support. It’s basically just a tag passing whatever you have in it to the database directly. We don’t try to generate a rollback statement because I’m not sure that a simple “drop” would necessarily be right since we don’t know what you’re doing in the SQL.

Nathan

Got it. Thanks!