{"id":141,"date":"2015-10-02T08:36:10","date_gmt":"2015-10-02T08:36:10","guid":{"rendered":"http:\/\/www.josejavierfm.es\/blog\/?p=141"},"modified":"2015-10-02T08:47:59","modified_gmt":"2015-10-02T08:47:59","slug":"precondiciones-en-liquibase","status":"publish","type":"post","link":"https:\/\/www.josejavierfm.es\/blog\/2015\/10\/02\/precondiciones-en-liquibase\/","title":{"rendered":"Precondiciones en liquibase"},"content":{"rendered":"<p>Voy a poner un ejemplo de como tener un changeSet en liquibase que quiero que se ejecute solo si cumple una determinada condicion, en este caso que se ejecute contra hsqldb ( en mi caso entorno de desarrollo ) pero que as\u00ed no se ejecute en los entornos de PRE y PRO que son oracle.<\/p>\n<pre>\r\n<changeSet author=\"josejavierfm\" id=\"1439378147001-1\">\r\n<preConditions <strong>onFail=\"MARK_RAN\" onSqlOutput=\"TEST\"<\/strong>>\r\n<dbms type=\"<strong>hsqldb<\/strong>\" \/>\r\n<\/preConditions>\r\n<insert tableName=\"usuario\">\r\n<column name=\"login\" value=\"03220563L\" \/>\r\n<column name=\"oid\" value=\"d0feb400-2b6e-12e4-ad42-5404a6097000\" \/>\r\n<column name=\"fecha\" valueDate=\"${now}\" \/>\r\n<column name=\"nombre\" value=\"Usuario\" \/>\r\n<column name=\"apellidos\" value=\"Prueba Local\" \/>\r\n<column name=\"activo\" valueBoolean=\"true\" \/>\r\n<\/insert>\r\n<insert tableName=\"participacion\">\r\n<column name=\"login\" value=\"03220563L\" \/>\r\n<column name=\"rol\" value=\"ROLE_BASIC\" \/>\r\n<\/insert>\r\n<\/changeSet>\r\n<\/pre>\n<p>Lo importante aqui es la parte de preConditions marcando el atributo onFail=\u00bbMARK_RAN\u00bb para que cuando falle, no interrumpla la ejecuci\u00f3n y el parametro onSqlOutput=\u00bbTEST\u00bb, esto ultimo es muy importante, porque sino cuando invoques el perfil de maven updateSQL no tendria en cuanta la precondici\u00f3n, pues el valor por defecto es IGNORE. Con esto se fuerza a que al generar el SQL se compruebe la precondici\u00f3n.<\/p>\n<p>&nbsp;<\/p>\n\n<div class=\"twitter-share\"><a href=\"https:\/\/twitter.com\/intent\/tweet?via=josejavierfm\" class=\"twitter-share-button\">Twittear<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Voy a poner un ejemplo de como tener un changeSet en liquibase que quiero que se ejecute solo si cumple una determinada condicion, en este caso que se ejecute contra hsqldb ( en mi caso entorno de desarrollo ) pero que as\u00ed no se ejecute en los entornos de PRE y PRO que son oracle. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/141"}],"collection":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/comments?post=141"}],"version-history":[{"count":4,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/141\/revisions"}],"predecessor-version":[{"id":145,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/141\/revisions\/145"}],"wp:attachment":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/media?parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/categories?post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/tags?post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}