{"id":12307,"date":"2024-12-07T14:25:29","date_gmt":"2024-12-07T06:25:29","guid":{"rendered":"https:\/\/www.gbase8.cn\/?p=12307"},"modified":"2024-12-07T14:34:44","modified_gmt":"2024-12-07T06:34:44","slug":"liquibase-%e4%bb%8b%e7%bb%8d%e5%92%8c%e8%bf%9e%e6%8e%a5gbase-8a-%e9%9b%86%e7%be%a4%e4%bd%bf%e7%94%a8","status":"publish","type":"post","link":"https:\/\/www.gbase8.cn\/en\/12307","title":{"rendered":"Liquibase \u4ecb\u7ecd\u548c\u8fde\u63a5GBase 8a \u96c6\u7fa4\u4f7f\u7528"},"content":{"rendered":"\n<p>Liquibase \u662f\u7ba1\u7406\u4e1a\u52a1\u4e2d\u6570\u636e\u5e93\u7ed3\u6784\u7248\u672c\u7684\uff0c\u7528\u4e8e\u8ddf\u8e2a\u3001\u7ba1\u7406\u548c\u5e94\u7528\u6570\u636e\u5e93(\u8868\u7ed3\u6784\uff0c\u6570\u636e\u7b49)\u53d8\u5316\uff0c\u6240\u4ee5\u5c31\u4f1a\u6709\u8fd9\u4e9b\u6982\u5ff5\uff1a\u7248\u672c\u53f7\uff0c\u7ba1\u7406\u7684\u6570\u636e\uff0c\u5dee\u5f02\u6bd4\u8f83\uff0c\u7248\u672c\u56de\u6eda\u3002\u76ee\u524dLiquibase\u5b98\u65b9\u4e0d\u652f\u6301GBase 8a\u6570\u636e\u5e93\uff0c\u4f46\u53ef\u4ee5\u7528mysql\u9a71\u52a8\u3002\u672c\u6587\u7b80\u5355\u4ecb\u7ecdliquibase\u5e76\u5bf9GBase 8a\u96c6\u7fa49.5.3\u7248\u672c\u7ba1\u7406\u7684\u6837\u4f8b\u3002<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u76ee\u5f55\u5bfc\u822a<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2a9d71ade9b\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2a9d71ade9b\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#1_Introduction_to_Liquibase\" >1.\u00a0Introduction to Liquibase<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#11_Standard_Liquibase_workflow\" >1.1.&nbsp;Standard&nbsp;Liquibase&nbsp;workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#12_ChangeSets\" >1.2.&nbsp;ChangeSets<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#13_ChangeLog\" >1.3.&nbsp;ChangeLog<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#14_Liquibase_properties_file\" >1.4.&nbsp;Liquibase&nbsp;properties file<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#15_Liquibase_commands\" >1.5.&nbsp;Liquibase&nbsp;commands<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#151_Update\" >1.5.1.&nbsp;Update<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#152_Rollback\" >1.5.2.&nbsp;Rollback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#153_Database_Inspection\" >1.5.3.&nbsp;Database Inspection<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#154_Utility\" >1.5.4.&nbsp;Utility<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#16_Database_Changelog_and_Database_Changelog_Lock\" >1.6.&nbsp;Database Changelog and Database Changelog Lock<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#17_Executing_Liquibase_Commands\" >1.7.&nbsp;Executing&nbsp;Liquibase&nbsp;Commands<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#2_Install_Liquibase\" >2.&nbsp;Install Liquibase<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#3_Ensure_Java_is_installed\" >3.&nbsp;Ensure Java is installed<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#4_%E7%94%9F%E6%88%90%E9%A1%B9%E7%9B%AE\" >4.\u00a0\u751f\u6210\u9879\u76ee<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#5_%E7%BC%96%E8%BE%91%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\" >5.&nbsp;\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#6_%E6%93%8D%E4%BD%9C\" >6.&nbsp;\u64cd\u4f5c<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#61_Update\" >6.1.&nbsp;Update<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#611_%E5%A2%9E%E5%8A%A0%E8%87%AA%E5%B8%A6%E7%9A%84%E9%BB%98%E8%AE%A4%E4%BE%8B%E5%AD%90%E4%B8%AD%E7%9A%84%E8%A1%A8\" >6.1.1.\u00a0\u589e\u52a0\u81ea\u5e26\u7684\u9ed8\u8ba4\u4f8b\u5b50\u4e2d\u7684\u8868<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#612_%E6%96%B0%E5%A2%9E%E4%B8%80%E4%B8%AAGBase%E5%88%86%E5%B8%83%E8%A1%A8\" >6.1.2.&nbsp;\u65b0\u589e\u4e00\u4e2aGBase\u5206\u5e03\u8868<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#613_%E4%B8%80%E6%AC%A1%E5%A4%9A%E4%B8%AA%E5%8F%98%E5%8A%A8%E4%BE%8B%E5%AD%90\" >6.1.3.&nbsp;\u4e00\u6b21\u591a\u4e2a\u53d8\u52a8\u4f8b\u5b50<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#62_Tag\" >6.2.&nbsp;Tag<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#63_Rollback\" >6.3.&nbsp;Rollback<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.gbase8.cn\/en\/12307\/#7_%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0\" >7.\u00a0\u00a0\u547d\u4ee4\u884c\u53c2\u6570<\/a><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Introduction_to_Liquibase\"><\/span>1.\u00a0<strong>Introduction to Liquibase<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>\u652f\u6301\u591a\u4e2a\u4f5c\u8005<\/li><li>\u6bcf\u4e2a\u53d8\u52a8\u6709\u7f16\u53f7ID, \u4e0e\u4f5c\u8005\u4e00\u8d77\u53ef\u770b\u4f5c\u552f\u4e00\u6807\u8bc6\u7b26\u3002\u6574\u4e2a\u53d8\u52a8\u5185\u5bb9\u4e00\u65e6\u66f4\u65b0\u5219\u4e0d\u53ef\u66f4\u6539\u3002<\/li><li>\u53d8\u52a8\u652f\u6301\u56de\u9000<\/li><li>\u53d8\u52a8\u6587\u4ef6\u53ef\u4ee5\u591a\u6b21\u6539\u52a8\uff0c\u4f1a\u81ea\u52a8\u66f4\u65b0\u53d8\u52a8\u7684\u90e8\u5206\u3002<\/li><li>\u53ef\u4ee5\u6253tag\uff0c\u53ef\u7528\u4e8e\u6574\u4f53\u56de\u9000<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"11_Standard_Liquibase_workflow\"><\/span><strong>1.1.&nbsp;<\/strong><strong>Standard&nbsp;Liquibase&nbsp;workflow<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/docs.liquibase.com\/z_resources\/images\/how-liquibase-works-general.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"12_ChangeSets\"><\/span><strong>1.2.&nbsp;<\/strong><strong>ChangeSets<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Changesets contain&nbsp;Change Types, which are types of operations to apply to the database, such as adding a column or primary key.&nbsp;Context,&nbsp;label, and&nbsp;precondition&nbsp;changelog&nbsp;tags help precisely control when a database change is made and to which database environment it is deployed.<\/p>\n\n\n\n<p>\u5176\u4e2d\u4f5c\u8005\u548cID\u662f\u6807\u8bc6\u7b26,\u4e00\u65e6update\u5219\u4e0d\u5141\u8bb8\u53d8\u52a8\u540e\u9762\u7684\u5185\u5bb9\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>SQL\u683c\u5f0f\r\n\r\n-- changeset liquibaseuser:1\r\ncreate table Details1 ( id int primary key, name varchar(255) );\r\n-- rollback drop table Details1;\r\n\r\nXML\u683c\u5f0f\r\n&lt;changeSet  author=\"liquibase\" id=\"30\">\r\n  &lt;createTable tableName=\"table30\">\r\n    &lt;column name=\"id\" type=\"int\"\/>\r\n    &lt;column name=\"heading\" type=\"varchar(36)\"\/>\r\n    &lt;column name=\"author\" type=\"varchar(36)\"\/>\r\n  &lt;\/createTable>\r\n&lt;rollback>\r\ndrop table table30\r\n&lt;\/rollback>\r\n&lt;\/changeSet><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"13_ChangeLog\"><\/span><strong>1.3.&nbsp;<\/strong><strong>ChangeLog<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Liquibase&nbsp;uses SQL, XML, JSON, and YAML&nbsp;<a href=\"https:\/\/docs.liquibase.com\/concepts\/changelogs\/home.html\"><u>changelog<\/u><\/a>&nbsp;files to list database changes in sequential order. Database changes have the format of&nbsp;<a href=\"https:\/\/docs.liquibase.com\/concepts\/changelogs\/changeset.html\"><u>changesets<\/u><\/a>.&nbsp;<\/p>\n\n\n\n<p>\u5305\u542b\u4e86\u6309\u987a\u5e8f\u5217\u51fa\u7684ChangeSets\u96c6\u5408\u3002<\/p>\n\n\n\n<p>\u6bcf\u4e2a\u6587\u4ef6\u91cc\u7684changeset\u8981\u6c42\u4f5c\u8005\u548c\u987a\u5e8f\u53f7\u552f\u4e00\uff0c\u5426\u5219\u62a5\u91cd\u590d<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>changesets had duplicate identifiers<\/code><\/pre>\n\n\n\n<p>changesets had duplicate identifiers<\/p>\n\n\n\n<p>\u5982\u679c\u51fa\u73b0\u8001\u7684\u7f16\u53f7\uff0c\u4e14\u5185\u5bb9\u51fa\u73b0\u53d8\u52a8\uff0c\u62a5\u6821\u9a8c\u9519\u8bef<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nexpected error running Liquibase: Validation Failed:\r\n     1 changesets check sum\r\n          gbase.sql::1::XXX  was: 9:70253bd57ffa0fa6faf0b0c0103ab76a but is now: 9:e602d9babfc3872b65daa05bd5c9c97e<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/docs.liquibase.com\/z_resources\/images\/changelog-structure.png\" alt=\"\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;changeSet> \r\n&lt;\/changeSet>\r\n&lt;changeSet> \r\n&lt;\/changeSet>\r\n&lt;changeSet> \r\n&lt;\/changeSet>\n...<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"14_Liquibase_properties_file\"><\/span><strong>1.4.&nbsp;<\/strong><strong>Liquibase&nbsp;<\/strong><strong>properties <\/strong><strong>file<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To set the connection between&nbsp;Liquibase&nbsp;with your database, you need the&nbsp;<a href=\"https:\/\/docs.liquibase.com\/start\/tutorials\/home.html\"><u>database connection information<\/u><\/a>&nbsp;and parameters.&nbsp;Liquibase&nbsp;includes a&nbsp;<a href=\"https:\/\/docs.liquibase.com\/concepts\/connections\/creating-config-properties.html\"><u>properties file<\/u><\/a>&nbsp;to store database connection information and parameters that rarely change. Setting the parameters as&nbsp;<a href=\"https:\/\/docs.liquibase.com\/concepts\/connections\/liquibase-environment-variables.html\"><u>environment variables<\/u><\/a>&nbsp;to handle sensitive database information or running them at the command prompt is an alternative option.<\/p>\n\n\n\n<p>\u8fde\u63a5\u6570\u636e\u5e93\u7684\u53c2\u6570\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"15_Liquibase_commands\"><\/span><strong>1.5.&nbsp;<\/strong><strong>Liquibase&nbsp;commands<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Liquibase&nbsp;runs six basic types of&nbsp;<a href=\"https:\/\/docs.liquibase.com\/commands\/home.html\"><u>commands<\/u><\/a>: update, rollback, snapshot, diff, status, and utility commands. When you use the&nbsp;update&nbsp;command to deploy your first changes,&nbsp;Liquibase&nbsp;checks the database connection information, including credentials, database URL, and JDBC driver.<\/p>\n\n\n\n<p>\u547d\u4ee4\uff0c\u5305\u62ecupdate,rollback,snapshot.diff,status\u548cutility<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"151_Update\"><\/span>1.5.1.&nbsp;<strong>Update<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Commands used to execute undeployed changes specified in&nbsp;the&nbsp;changelog&nbsp;to a target database.<\/p>\n\n\n\n<p>\u6267\u884c\u6570\u636e\u5e93\u672a\u90e8\u7f72\u7684\u6539\u52a8<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"152_Rollback\"><\/span>1.5.2.&nbsp;<a href=\"https:\/\/docs.liquibase.com\/commands\/rollback\/home.html\"><strong>Rollback<\/strong><\/a><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Commands used to undo changes made to the database either automatically or with a custom rollback query.<\/p>\n\n\n\n<p>\u56de\u9000\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"153_Database_Inspection\"><\/span>1.5.3.&nbsp;<a href=\"https:\/\/docs.liquibase.com\/commands\/inspection\/home.html\"><strong>Database Inspection<\/strong><\/a><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Commands used to compare differences between databases, or snapshots of databases over time.<\/p>\n\n\n\n<p>\u5305\u542b\u4e86\u6bd4\u8f83\uff0c\u5feb\u7167\u7b49\u529f\u80fd\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"154_Utility\"><\/span>1.5.4.&nbsp;<a href=\"https:\/\/docs.liquibase.com\/commands\/utility\/home.html\"><strong>Utility<\/strong><\/a><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Commands used to manage&nbsp;changelogs,&nbsp;changesets, checksums, locks, and database schema documents.<\/p>\n\n\n\n<p>\u7ba1\u7406\u5de5\u5177<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"16_Database_Changelog_and_Database_Changelog_Lock\"><\/span><strong>1.6.&nbsp;<\/strong><strong>Database Changelog and Database Changelog Lock<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>When you deploy your changes,&nbsp;Liquibase&nbsp;creates two tables in your database:&nbsp;<a href=\"https:\/\/docs.liquibase.com\/concepts\/tracking-tables\/databasechangelog-table.html\"><u>DATABASECHANGELOG<\/u><\/a>&nbsp;and&nbsp;<a href=\"https:\/\/docs.liquibase.com\/concepts\/tracking-tables\/databasechangeloglock-table.html\"><u>DATABASECHANGELOGLOCK<\/u><\/a>.<\/p>\n\n\n\n<p>The&nbsp;DATABASECHANGELOG&nbsp;table tracks deployed changes so that you have a record.&nbsp;Liquibase&nbsp;compares the&nbsp;changesets in the&nbsp;changelog&nbsp;file with the&nbsp;DATABASECHANGELOG&nbsp;tracking table and deploys only new&nbsp;changesets.<\/p>\n\n\n\n<p>DATABASECHANGELOGLOCK&nbsp;prevents multiple instances of&nbsp;Liquibase&nbsp;from updating the database at the same time. The table manages access to the&nbsp;DATABASECHANGELOG&nbsp;table during deployment and ensures only one instance of&nbsp;Liquibase&nbsp;is updating the database.<\/p>\n\n\n\n<p>\u81ea\u52a8\u5efa2\u5f20\u8868<\/p>\n\n\n\n<p>DATABASECHANGELOG&nbsp;&nbsp;\u8ddf\u8e2a\u53d8\u52a8<\/p>\n\n\n\n<p>DATABASECHANGELOGLOCK&nbsp;&nbsp;\u907f\u514d\u5e76\u53d1<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"17_Executing_Liquibase_Commands\"><\/span><strong>1.7.&nbsp;<\/strong><strong>Executing&nbsp;Liquibase&nbsp;Commands<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Liquibase&nbsp;commands can be executed through different types of interfaces for database change management. These include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Command-line interface (CLI)<\/li><li>Liquibase&nbsp;flow files (Pro)<\/li><li>Maven<\/li><li>Spring Boot<\/li><li>Java API<\/li><\/ul>\n\n\n\n<p>\u547d\u4ee4\u884c\u6700\u7b80\u5355<\/p>\n\n\n\n<p>Liquibase&nbsp;command parameters let users specify&nbsp;<strong>behavior<\/strong>&nbsp;when running&nbsp;Liquibase&nbsp;commands and are either&nbsp;<strong>global<\/strong>&nbsp;parameters or&nbsp;<strong>command<\/strong>&nbsp;parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Global parameters<\/strong>&nbsp;are used to change a global default behavior and can be used with any&nbsp;Liquibase&nbsp;command.<\/li><li><strong>Command parameters<\/strong>&nbsp;specify command-specific settings and values.<\/li><\/ul>\n\n\n\n<p>liquibase [global parameter] [command] [command parameter] liquibase [--changelog-file=dbchangelog.xml] [status] [--verbose]<\/p>\n\n\n\n<p>Certain parameters are required to execute most commands. These include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>--changelog-file<\/strong><strong>:<\/strong>&nbsp;includes the path and filename of the&nbsp;changelog&nbsp;used.<\/li><li><strong>--url<\/strong><strong>:<\/strong>&nbsp;the database JDBC URL value.<\/li><li><strong>--username<\/strong><strong>*:<\/strong>&nbsp;the database username value.<\/li><li><strong>--password<\/strong><strong>*:<\/strong>&nbsp;the password for the database.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Install_Liquibase\"><\/span>2.&nbsp;<strong>Install Liquibase<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>To install Liquibase using the Red Hat\/CentOS package manager, follow the steps below:<\/p>\n\n\n\n<p>Import the Liquibase public key (as root):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rpm --import https:\/\/repo.liquibase.com\/liquibase.asc<\/code><\/pre>\n\n\n\n<p>Install yum-config-manager:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install -y yum-utils<\/code><\/pre>\n\n\n\n<p>Add the remote repo to yum (as root):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum-config-manager --add-repo https:\/\/repo.liquibase.com\/repo-liquibase-com.repo<\/code><\/pre>\n\n\n\n<p>Install Liquibase:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install liquibase<\/code><\/pre>\n\n\n\n<p>\u5b89\u88c5\u8fc7\u7a0b<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 ~]# rpm --import https:\/\/repo.liquibase.com\/liquibase.asc\r\n&#91;root@gbase_rh7_003 ~]# yum install -y yum-utils\r\nLoaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager\r\nThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.\r\nbase                                                                                                              | 3.6 kB  00:00:00\r\nextras                                                                                                            | 2.9 kB  00:00:00\r\nupdates                                                                                                           | 2.9 kB  00:00:00\r\nResolving Dependencies--> Running transaction check---> Package yum-utils.noarch 0:1.1.31-40.el7 will be updated---> Package yum-utils.noarch 0:1.1.31-54.el7_8 will be an update--> Finished Dependency Resolution\r\n\r\nDependencies Resolved\r\n=========================================================================================================================================\r\n Package                          Arch                          Version                                Repository                   Size=========================================================================================================================================\r\nUpdating:\r\n yum-utils                        noarch                        1.1.31-54.el7_8                        base                        122 k\r\n\r\nTransaction Summary=========================================================================================================================================\r\nUpgrade  1 Package\r\n\r\nTotal download size: 122 k\r\nDownloading packages:No Presto metadata available for base\r\nyum-utils-1.1.31-54.el7_8.noarch.rpm                                                                              | 122 kB  00:00:00Running transaction checkRunning transaction test\r\nTransaction test succeededRunning transaction\r\n  Updating   : yum-utils-1.1.31-54.el7_8.noarch                                                                                      1\/2\r\n  Cleanup    : yum-utils-1.1.31-40.el7.noarch                                                                                        2\/2\r\n  Verifying  : yum-utils-1.1.31-54.el7_8.noarch                                                                                      1\/2\r\n  Verifying  : yum-utils-1.1.31-40.el7.noarch                                                                                        2\/2\r\n\r\nUpdated:\r\n  yum-utils.noarch 0:1.1.31-54.el7_8\r\n\r\nComplete!\r\n&#91;root@gbase_rh7_003 ~]# yum-config-manager --add-repo https:\/\/repo.liquibase.com\/repo-liquibase-com.repo\r\nLoaded plugins: langpacks, product-id\r\nadding repo from: https:\/\/repo.liquibase.com\/repo-liquibase-com.repo\r\ngrabbing file https:\/\/repo.liquibase.com\/repo-liquibase-com.repo to \/etc\/yum.repos.d\/repo-liquibase-com.repo\r\nrepo saved to \/etc\/yum.repos.d\/repo-liquibase-com.repo\r\n&#91;root@gbase_rh7_003 ~]# yum install liquibase\r\nLoaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager\r\nThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.\r\nrepo.liquibase.com                                                                                                | 3.0 kB  00:00:00\r\nrepo.liquibase.com\/primary_db                                                                                     |  37 kB  00:00:01\r\nResolving Dependencies--> Running transaction check---> Package liquibase.noarch 0:4.30.0-1 will be installed--> Finished Dependency Resolution\r\n\r\nDependencies Resolved\r\n=========================================================================================================================================\r\n Package                        Arch                        Version                        Repository                               Size=========================================================================================================================================\r\nInstalling:\r\n liquibase                      noarch                      4.30.0-1                       repo.liquibase.com                      153 M\r\n\r\nTransaction Summary=========================================================================================================================================\r\nInstall  1 Package\r\n\r\nTotal download size: 153 M\r\nInstalled size: 169 MIs this ok &#91;y\/d\/N]: y\r\nDownloading packages:\r\nliquibase-4.30.0-1.noarch.rpm                                                                                     | 153 MB  00:10:13Running transaction checkRunning transaction test\r\nTransaction test succeededRunning transaction\r\n  Installing : liquibase-4.30.0-1.noarch                                                                                             1\/1\r\n  Verifying  : liquibase-4.30.0-1.noarch                                                                                             1\/1\r\n\r\nInstalled:\r\n  liquibase.noarch 0:4.30.0-1\r\n\r\nComplete!\r\n&#91;root@gbase_rh7_003 ~]#\r\n&#91;root@gbase_rh7_003 liquibasegbase]# liquibase --version\r\n####################################################\r\n##   _     _             _ _                      ##\r\n##  | |   (_)           (_) |                     ##\r\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\r\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\r\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\r\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\r\n##              | |                               ##\r\n##              |_|                               ##\r\n##                                                ##\r\n##  Get documentation at docs.liquibase.com       ##\r\n##  Get certified courses at learn.liquibase.com  ##\r\n##                                                ##\r\n####################################################\r\nStarting Liquibase at 10:26:27 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\r\nLiquibase Home: \/usr\/bin\r\nJava Home \/usr\/java\/jdk1.8.0_291-amd64\/jre (Version 1.8.0_291)\r\nLibraries:\r\n- internal\/extensions\/liquibase-commercial-bigquery.jar: Liquibase BigQuery Commercial Extension 4.30.0 By Liquibase\r\n- internal\/lib\/commons-collections4.jar: Apache Commons Collections 4.4.0 By The Apache Software Foundation\r\n- internal\/lib\/commons-io.jar: Apache Commons IO 2.17.0 By The Apache Software Foundation\r\n- internal\/lib\/commons-lang3.jar: Apache Commons Lang 3.17.0 By The Apache Software Foundation\r\n- internal\/lib\/commons-text.jar: Apache Commons Text 1.12.0 By The Apache Software Foundation\r\n- internal\/lib\/gbase-connector-java-8.3.81.53-build55.5.7-bin_min_mix.jar: General Data Technology' JDBC Driver for GBase 8.3.81.53 By General Data Technology Inc.\r\n- internal\/lib\/h2.jar: H2 Database Engine 2.2.224 By H2 Group\r\n- internal\/lib\/hsqldb.jar: HSQLDB 2.7.3 By The HSQL Development Group\r\n- internal\/lib\/jaxb-api.jar: jaxb-api 2.3.1 By Oracle Corporation\r\n- internal\/lib\/jaxb-core.jar: JAXB Core 4.0.5 By Eclipse Foundation\r\n- internal\/lib\/jaxb-runtime.jar: JAXB Runtime 4.0.5 By Eclipse Foundation\r\n- internal\/lib\/jaybird.jar: Jaybird 5.0.5.java8 (build: variant=jaybird tag=v5.0.5 date=202406141523) By Firebird project\r\n- internal\/lib\/jcc.jar: IBM JCC JDBC 4 Driver 1.4.0 By IBM\r\n- internal\/lib\/liquibase-commercial.jar: Commercial Liquibase Functionality 4.30.0 By Liquibase\r\n- internal\/lib\/mariadb-java-client.jar: mariadb-java-client 3.4.1 By mariadb.com\r\n- internal\/lib\/mssql-jdbc.jar: Microsoft JDBC Driver for SQL Server 12.8.1 By Microsoft Corporation\r\n- internal\/lib\/ojdbc8.jar: JDBC 19.24.0.0.0 By Oracle Corporation\r\n- internal\/lib\/opencsv.jar: opencsv 5.9.0\r\n- internal\/lib\/picocli.jar: picocli 4.7.6 By Remko Popma\r\n- internal\/lib\/postgresql.jar: PostgreSQL JDBC Driver 42.7.4 By PostgreSQL Global Development Group\r\n- internal\/lib\/slf4j-api.jar: SLF4J API Module 2.0.16 By SLF4J.ORG\r\n- internal\/lib\/slf4j-simple.jar: SLF4J Simple Provider 2.0.16 By SLF4J.ORG\r\n- internal\/lib\/snakeyaml.jar: SnakeYAML 2.3.0\r\n- internal\/lib\/snowflake-jdbc.jar: snowflake-jdbc 3.18.0\r\n- internal\/lib\/sqlite-jdbc.jar: SQLite JDBC 3.46.1.3\r\n\r\n\r\nLiquibase Version: 4.30.0\r\nLiquibase Open Source 4.30.0 by Liquibase\r\n&#91;root@gbase_rh7_003 liquibasegbase]#<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Ensure_Java_is_installed\"><\/span>3.&nbsp;<strong>Ensure Java is installed<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>[root@gbase_rh7_003 ~]# java -version<\/p>\n\n\n\n<p>java version \"1.8.0_291\"Java(TM) SE Runtime Environment (build 1.8.0_291-b10)<\/p>\n\n\n\n<p>Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)[root@gbase_rh7_003 ~]#<\/p>\n\n\n\n<p>Jdbc jar\u5305, \u7528mysql 5.0.7\u7b49\u8001\u7684\u7248\u672c,\u653e\u5230<\/p>\n\n\n\n<p>\/usr\/bin\/internal\/lib<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_%E7%94%9F%E6%88%90%E9%A1%B9%E7%9B%AE\"><\/span>4.\u00a0<strong>\u751f\u6210\u9879\u76ee<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 gbase]# mkdir liquibasegbase\r\n&#91;root@gbase_rh7_003 gbase]# cd liquibasegbase\/\r\n&#91;root@gbase_rh7_003 liquibasegbase]# liquibase init project-new\r\n####################################################\r\n##   _     _             _ _                      ##\r\n##  | |   (_)           (_) |                     ##\r\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\r\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\r\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\r\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\r\n##              | |                               ##\r\n##              |_|                               ##\r\n##                                                ##\r\n##  Get documentation at docs.liquibase.com       ##\r\n##  Get certified courses at learn.liquibase.com  ##\r\n##                                                ##\r\n####################################################\r\nStarting Liquibase at 10:55:55 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\r\nLiquibase Version: 4.30.0\r\nLiquibase Open Source 4.30.0 by Liquibase\r\nSetup new liquibase.properties, flowfile, and sample changelog? Enter (Y)es with defaults, yes with (C)ustomization, or (N)o. &#91;Y]:\r\nyes\r\nSetting up new Liquibase project in '\/home\/gbase\/liquibasegbase\/.'...\r\n\r\nCreated example changelog file '\/home\/gbase\/liquibasegbase\/example-changelog.sql'\r\nCreated example defaults file '\/home\/gbase\/liquibasegbase\/liquibase.properties'\r\nCreated example flow file '\/home\/gbase\/liquibasegbase\/liquibase.advanced.flowfile.yaml'\r\nCreated example flow file '\/home\/gbase\/liquibasegbase\/liquibase.flowvariables.yaml'\r\nCreated example flow file '\/home\/gbase\/liquibasegbase\/liquibase.endstage.flow'\r\nCreated example flow file '\/home\/gbase\/liquibasegbase\/liquibase.flowfile.yaml'\r\nCreated example checks package '\/home\/gbase\/liquibasegbase\/liquibase.checks-package.yaml'\r\n\r\nTo use the new project files make sure your database is active and accessible by opening a new terminal window to run \"liquibase init start-h2\", and then return to this terminal window to run \"liquibase update\" command.\r\nFor more details, visit the Getting Started Guide at https:\/\/docs.liquibase.com\/start\/home.html\r\nLiquibase command 'init project' was executed successfully.\r\n&#91;root@gbase_rh7_003 liquibasegbase]# ll\r\ntotal 32\r\n-rw-r--r-- 1 root root  832 Dec  7 10:18 example-changelog.sql\r\n-rw-r--r-- 1 root root 4924 Dec  7 10:18 liquibase.advanced.flowfile.yaml\r\n-rw-r--r-- 1 root root 1916 Dec  7 10:18 liquibase.checks-package.yaml\r\n-rw-r--r-- 1 root root  985 Dec  7 10:18 liquibase.endstage.flow\r\n-rw-r--r-- 1 root root 1160 Dec  7 10:18 liquibase.flowfile.yaml\r\n-rw-r--r-- 1 root root  404 Dec  7 10:18 liquibase.flowvariables.yaml\r\n-rw-r--r-- 1 root root 2752 Dec  7 10:18 liquibase.properties\r\n&#91;root@gbase_rh7_003 liquibasegbase]# <\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_%E7%BC%96%E8%BE%91%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\"><\/span>5.&nbsp;<strong>\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u7f16\u8f91 liquibase.properties \u5c06\u76ee\u6807\u5e93\u7684JDBC\u53c2\u6570\u3002 \u5176\u4e2d\u9a71\u52a8\u7528mysql\uff0c\u7aef\u53e3\u6539\u62105258<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>#### Enter the Target database 'url' information  ####liquibase.command.url=jdbc:mysql:\/\/10.0.2.103:5258\/liquibase\r\n# Enter the username for your Target database.liquibase.command.username: root\r\n# Enter the password for your Target database.liquibase.command.password: XXXXXXX<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_%E6%93%8D%E4%BD%9C\"><\/span>6.&nbsp;<strong>\u64cd\u4f5c<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"61_Update\"><\/span><strong>6.1.&nbsp;<\/strong><strong>Update<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"611_%E5%A2%9E%E5%8A%A0%E8%87%AA%E5%B8%A6%E7%9A%84%E9%BB%98%E8%AE%A4%E4%BE%8B%E5%AD%90%E4%B8%AD%E7%9A%84%E8%A1%A8\"><\/span>6.1.1.\u00a0<strong>\u589e\u52a0\u81ea\u5e26\u7684\u9ed8\u8ba4\u4f8b\u5b50\u4e2d\u7684\u8868<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 liquibasegbase]# liquibase update\n####################################################\n##   _     _             _ _                      ##\n##  | |   (_)           (_) |                     ##\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\n##              | |                               ##\n##              |_|                               ##\n##                                                ##\n##  Get documentation at docs.liquibase.com       ##\n##  Get certified courses at learn.liquibase.com  ##\n##                                                ##\n####################################################\nStarting Liquibase at 10:55:55 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\nLiquibase Version: 4.30.0\nLiquibase Open Source 4.30.0 by Liquibase\nRunning Changeset: example-changelog.sql::1::your.name\nRunning Changeset: example-changelog.sql::2::your.name\nRunning Changeset: example-changelog.sql::3::other.dev\r\nUPDATE SUMMARY\nRun:                          3\nPreviously run:               0\nFiltered out:                 0\r\n-------------------------------\nTotal change sets:            3\r\nLiquibase: Update has been successful. Rows affected: 3Liquibase command 'update' was executed successfully.\r\n&#91;root@gbase_rh7_003 liquibasegbase]# \r\n\r\n\u767b\u5f55gbase\u67e5\u770b\u7ed3\u679c\r\nGBase client 9.5.3.28.18.r1_patch.3b726d68. Copyright (c) 2004-2024, GBase.  All Rights Reserved.\r\n\r\ngbase> show databases;\n+--------------------+\n| Database           |\n+--------------------+\n| information_schema |\n| performance_schema |\n| gbase              |\n| gctmpdb            |\n| gclusterdb         |\n| liquibase          |\n| test1db            |\n| test_db            |\n| testdb             |\n+--------------------+\n9 rows in set (Elapsed: 00:00:00.00)\r\n\r\ngbase> use liquibase;\r\nQuery OK, 0 rows affected (Elapsed: 00:00:00.00)\r\n\r\ngbase> show tables;\n+-----------------------+\n| Tables_in_liquibase   |\n+-----------------------+\n| company               |\n| databasechangelog     |\n| databasechangeloglock |\n| person                |\n+-----------------------+\n4 rows in set (Elapsed: 00:00:00.00)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"612_%E6%96%B0%E5%A2%9E%E4%B8%80%E4%B8%AAGBase%E5%88%86%E5%B8%83%E8%A1%A8\"><\/span>6.1.2.&nbsp;<strong>\u65b0\u589e\u4e00\u4e2aGBase\u5206\u5e03\u8868<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u5c06\u914d\u7f6e\u6587\u4ef6\u91cc\u7684\u9ed8\u8ba4sql\u6539\u6210gbase.sql,\u7136\u540e\u65b0\u589e\u4e00\u4e2a\u5206\u5e03\u8868\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 liquibasegbase]# vi gbase.sql\n&#91;root@gbase_rh7_003 liquibasegbase]# cat gbase.sql\n--liquibase formatted sql\n\n--changeset XXX:1 labels:\u5efa\u5206\u5e03\u8868 context:\u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u8868\n--comment: example comment\ncreate table gbase (\n    id int,\n    name varchar(50)\n)distributed by('id')\n--rollback DROP TABLE gbase;\n\n&#91;root@gbase_rh7_003 liquibasegbase]# liquibase update\n\nRunning Changeset: gbase.sql::1::XXX\n\nUPDATE SUMMARY\nRun:                          1\nPreviously run:               0\nFiltered out:                 0\n-------------------------------\nTotal change sets:            1\n\nLiquibase: Update has been successful. Rows affected: 1\nLiquibase command 'update' was executed successfully.\n&#91;root@gbase_rh7_003 liquibasegbase]#\n\n\u67e5\u770b\u5206\u5e03\u8868\u6548\u679c\ngbase> show tables;\n+-----------------------+\n| Tables_in_liquibase   |\n+-----------------------+\n| company               |\n| databasechangelog     |\n| databasechangeloglock |\n| gbase                 |\n| person                |\n+-----------------------+\n5 rows in set (Elapsed: 00:00:00.00)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"613_%E4%B8%80%E6%AC%A1%E5%A4%9A%E4%B8%AA%E5%8F%98%E5%8A%A8%E4%BE%8B%E5%AD%90\"><\/span>6.1.3.&nbsp;<strong>\u4e00\u6b21\u591a\u4e2a\u53d8\u52a8\u4f8b\u5b50<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u6807\u7b7e\u76f8\u540c\u7684\uff0c\u4e0d\u4f1a\u66f4\u65b0\uff0c\u53ea\u6709\u65b0\u589e\u7684\u624d\u4f1a\u53d8\u52a8\u3002\u9002\u5408\u540c\u4e00\u4e2a\u53d8\u52a8\u6587\u4ef6\uff0c\u505a\u4e86\u591a\u6b21\u53d8\u52a8\u7684\u60c5\u51b5\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 liquibasegbase]# cat gbase.sql--liquibase formatted sql\r\n--changeset XXX:2 labels:\u5efa\u5206\u5e03\u88682 context:\u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u88682--comment: \u5206\u5e03\u88682create table gbase2 (\r\n    id int,\r\n    name varchar(50)\r\n)distributed by('id')--rollback DROP TABLE gbase2;\r\n--changeset XXX:3 labels:\u5efa\u590d\u5236\u88681 context:\u5efa\u590d\u5236\u88681--comment: \u590d\u5236\u88681create table gbaserep (\r\n    id int,\r\n    name varchar(50)\r\n)replicated--rollback DROP TABLE gbaserep;\r\n\r\n&#91;root@gbase_rh7_003 liquibasegbase]#<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"62_Tag\"><\/span><strong>6.2.&nbsp;<\/strong><strong>Tag<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u7ed9\u5f53\u524d\u7684\u7248\u672c\u4e00\u4e2a\u6807\u7b7e\u3002\u4ece\u6570\u636e\u5e93\u7684\u8868\u91cc\u80fd\u67e5\u5230\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 liquibasegbase]# liquibase tag 'test000'\n####################################################\r\n##   _     _             _ _                      ##\r\n##  | |   (_)           (_) |                     ##\r\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\r\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\r\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\r\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\r\n##              | |                               ##\r\n##              |_|                               ##\r\n##                                                ##\r\n##  Get documentation at docs.liquibase.com       ##\r\n##  Get certified courses at learn.liquibase.com  ##\r\n##                                                ##\r\n####################################################\r\nStarting Liquibase at 10:55:55 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\r\nLiquibase Version: 4.30.0\r\nLiquibase Open Source 4.30.0 by Liquibase\n\r\nSuccessfully tagged 'root@10.0.2.103@jdbc:mysql:\/\/10.0.2.103:5258\/liquibase'\r\nLiquibase command 'tag' was executed successfully.\r\n&#91;root@gbase_rh7_003 liquibasegbase]# \r\ngbase> select * from databasechangelog;\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+--------------------------------+---------------+---------------+\r\n| ID | AUTHOR    | FILENAME              | DATEEXECUTED        | ORDEREXECUTED | EXECTYPE | MD5SUM                             | DESCRIPTION | COMMENTS        | TAG     | LIQUIBASE | CONTEXTS                       | LABELS        | DEPLOYMENT_ID |\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+--------------------------------+---------------+---------------+\r\n| 1  | your.name | example-changelog.sql | 2024-12-07 10:55:57 |             1 | EXECUTED | 9:f6d6b04fbf860e734bbcaa93c2207423 | sql         | example comment | NULL    | 4.30.0    | example-context                | example-label | 3540157531    |\r\n| 2  | your.name | example-changelog.sql | 2024-12-07 10:55:58 |             2 | EXECUTED | 9:8105cd2916fe5e4a0d7e030fd54037dc | sql         | example comment | NULL    | 4.30.0    | example-context                | example-label | 3540157531    |\r\n| 3  | other.dev | example-changelog.sql | 2024-12-07 10:55:58 |             3 | EXECUTED | 9:7ce8f8f671c85fee99df053c02c385f2 | sql         | example comment | NULL    | 4.30.0    | example-context                | example-label | 3540157531    |\r\n| 1  | XXX    | gbase.sql             | 2024-12-07 11:08:48 |             4 | EXECUTED | 9:70253bd57ffa0fa6faf0b0c0103ab76a | sql         | example comment | test000 | 4.30.0    | \u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u8868          | \u5efa\u5206\u5e03\u8868      | 3540927873    |\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+--------------------------------+---------------+---------------+\r\n4 rows in set (Elapsed: 00:00:00.00)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"63_Rollback\"><\/span><strong>6.3.&nbsp;<\/strong><strong>Rollback<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u56de\u9000\u5230\u6307\u5b9a\u7684\u6807\u7b7e\u3002 \u518dupdate\u4e00\u6b21\uff0c\u5efagbase2\u7684\u8868\u3002 \u6253\u4e0a\u65b0\u7684\u6807\u7b7e\uff0c\u7136\u540e\u56de\u9000\u5230\u4e0a\u4e00\u4e2a\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 liquibasegbase]# cat gbase.sql\r\n--liquibase formatted sql\r\n\r\n--changeset XXX:2 labels:\u5efa\u5206\u5e03\u88682 context:\u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u88682\r\n--comment: example comment\r\ncreate table gbase2 (\r\n    id int,\r\n    name varchar(50)\r\n)distributed by('id')\r\n--rollback DROP TABLE gbase2;\r\n\r\n&#91;root@gbase_rh7_003 liquibasegbase]#\r\n\r\n&#91;root@gbase_rh7_003 liquibasegbase]# liquibase update\n####################################################\r\n##   _     _             _ _                      ##\r\n##  | |   (_)           (_) |                     ##\r\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\r\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\r\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\r\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\r\n##              | |                               ##\r\n##              |_|                               ##\r\n##                                                ##\r\n##  Get documentation at docs.liquibase.com       ##\r\n##  Get certified courses at learn.liquibase.com  ##\r\n##                                                ##\r\n####################################################\r\nStarting Liquibase at 10:55:55 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\r\nLiquibase Version: 4.30.0\r\nLiquibase Open Source 4.30.0 by Liquibase\n\r\nRunning Changeset: gbase.sql::2::XXX\r\n\r\nUPDATE SUMMARY\r\nRun:                          1\r\nPreviously run:               0\r\nFiltered out:                 0\r\n-------------------------------\r\nTotal change sets:            1\r\n\r\nLiquibase: Update has been successful. Rows affected: 1\r\nLiquibase command 'update' was executed successfully.\r\n&#91;root@gbase_rh7_003 liquibasegbase]# liquibase tag 'test001'\n####################################################\r\n##   _     _             _ _                      ##\r\n##  | |   (_)           (_) |                     ##\r\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\r\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\r\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\r\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\r\n##              | |                               ##\r\n##              |_|                               ##\r\n##                                                ##\r\n##  Get documentation at docs.liquibase.com       ##\r\n##  Get certified courses at learn.liquibase.com  ##\r\n##                                                ##\r\n####################################################\r\nStarting Liquibase at 10:55:55 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\r\nLiquibase Version: 4.30.0\r\nLiquibase Open Source 4.30.0 by Liquibase\r\nSuccessfully tagged 'root@10.0.2.103@jdbc:mysql:\/\/10.0.2.103:5258\/liquibase'\r\nLiquibase command 'tag' was executed successfully.\r\n&#91;root@gbase_rh7_003 liquibasegbase]# \r\ngbase> show tables;\r\n+-----------------------+\r\n| Tables_in_liquibase   |\r\n+-----------------------+\r\n| company               |\r\n| databasechangelog     |\r\n| databasechangeloglock |\r\n| gbase                 |\r\n| gbase2                |\r\n| person                |\r\n+-----------------------+\r\n6 rows in set (Elapsed: 00:00:00.00)\r\ngbase> select * from databasechangelog;\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+---------------------------------+---------------+---------------+\r\n| ID | AUTHOR    | FILENAME              | DATEEXECUTED        | ORDEREXECUTED | EXECTYPE | MD5SUM                             | DESCRIPTION | COMMENTS        | TAG     | LIQUIBASE | CONTEXTS                        | LABELS        | DEPLOYMENT_ID |\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+---------------------------------+---------------+---------------+\r\n| 1  | your.name | example-changelog.sql | 2024-12-07 10:55:57 |             1 | EXECUTED | 9:f6d6b04fbf860e734bbcaa93c2207423 | sql         | example comment | NULL    | 4.30.0    | example-context                 | example-label | 3540157531    |\r\n| 2  | your.name | example-changelog.sql | 2024-12-07 10:55:58 |             2 | EXECUTED | 9:8105cd2916fe5e4a0d7e030fd54037dc | sql         | example comment | NULL    | 4.30.0    | example-context                 | example-label | 3540157531    |\r\n| 3  | other.dev | example-changelog.sql | 2024-12-07 10:55:58 |             3 | EXECUTED | 9:7ce8f8f671c85fee99df053c02c385f2 | sql         | example comment | NULL    | 4.30.0    | example-context                 | example-label | 3540157531    |\r\n| 1  | XXX    | gbase.sql             | 2024-12-07 11:08:48 |             4 | EXECUTED | 9:70253bd57ffa0fa6faf0b0c0103ab76a | sql         | example comment | test000 | 4.30.0    | \u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u8868           | \u5efa\u5206\u5e03\u8868      | 3540927873    |\r\n| 2  | XXX    | gbase.sql             | 2024-12-07 11:30:21 |             5 | EXECUTED | 9:e602d9babfc3872b65daa05bd5c9c97e | sql         | example comment | test001 | 4.30.0    | \u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u88682          | \u5efa\u5206\u5e03\u88682     | 3542221297    |\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+---------------------------------+---------------+---------------+\r\n5 rows in set (Elapsed: 00:00:00.01)\r\n\r\n\r\n&#91;root@gbase_rh7_003 liquibasegbase]# liquibase rollback 'test000'\n####################################################\r\n##   _     _             _ _                      ##\r\n##  | |   (_)           (_) |                     ##\r\n##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##\r\n##  | |   | |\/ _` | | | | | '_ \\ \/ _` \/ __|\/ _ \\  ##\r\n##  | |___| | (_| | |_| | | |_) | (_| \\__ \\  __\/  ##\r\n##  \\_____\/_|\\__, |\\__,_|_|_.__\/ \\__,_|___\/\\___|  ##\r\n##              | |                               ##\r\n##              |_|                               ##\r\n##                                                ##\r\n##  Get documentation at docs.liquibase.com       ##\r\n##  Get certified courses at learn.liquibase.com  ##\r\n##                                                ##\r\n####################################################\r\nStarting Liquibase at 10:55:55 using Java 1.8.0_291 (version 4.30.0 #4943 built at 2024-10-31 17:00+0000)\r\nLiquibase Version: 4.30.0\r\nLiquibase Open Source 4.30.0 by Liquibase\n\r\nRolling Back Changeset: gbase.sql::2::XXX\r\nLiquibase command 'rollback' was executed successfully.\r\n&#91;root@gbase_rh7_003 liquibasegbase]# \r\ngbase> show tables;\r\n+-----------------------+\r\n| Tables_in_liquibase   |\r\n+-----------------------+\r\n| company               |\r\n| databasechangelog     |\r\n| databasechangeloglock |\r\n| gbase                 |\r\n| person                |\r\n+-----------------------+\r\n5 rows in set (Elapsed: 00:00:00.00)\r\n\r\ngbase> select * from databasechangelog;\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+--------------------------------+---------------+---------------+\r\n| ID | AUTHOR    | FILENAME              | DATEEXECUTED        | ORDEREXECUTED | EXECTYPE | MD5SUM                             | DESCRIPTION | COMMENTS        | TAG     | LIQUIBASE | CONTEXTS                       | LABELS        | DEPLOYMENT_ID |\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+--------------------------------+---------------+---------------+\r\n| 1  | your.name | example-changelog.sql | 2024-12-07 10:55:57 |             1 | EXECUTED | 9:f6d6b04fbf860e734bbcaa93c2207423 | sql         | example comment | NULL    | 4.30.0    | example-context                | example-label | 3540157531    |\r\n| 2  | your.name | example-changelog.sql | 2024-12-07 10:55:58 |             2 | EXECUTED | 9:8105cd2916fe5e4a0d7e030fd54037dc | sql         | example comment | NULL    | 4.30.0    | example-context                | example-label | 3540157531    |\r\n| 3  | other.dev | example-changelog.sql | 2024-12-07 10:55:58 |             3 | EXECUTED | 9:7ce8f8f671c85fee99df053c02c385f2 | sql         | example comment | NULL    | 4.30.0    | example-context                | example-label | 3540157531    |\r\n| 1  | XXX    | gbase.sql             | 2024-12-07 11:08:48 |             4 | EXECUTED | 9:70253bd57ffa0fa6faf0b0c0103ab76a | sql         | example comment | test000 | 4.30.0    | \u5efa\u6570\u5b57int\u7c7b\u578b\u7684\u5206\u5e03\u8868          | \u5efa\u5206\u5e03\u8868      | 3540927873    |\r\n+----+-----------+-----------------------+---------------------+---------------+----------+------------------------------------+-------------+-----------------+---------+-----------+--------------------------------+---------------+---------------+\r\n4 rows in set (Elapsed: 00:00:00.01)<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0\"><\/span>7.\u00a0<strong>\u00a0\u547d\u4ee4\u884c\u53c2\u6570<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@gbase_rh7_003 liquibasegbase]# liquibase --help\r\nUsage: liquibase &#91;GLOBAL OPTIONS] &#91;COMMAND] &#91;COMMAND OPTIONS]\r\nCommand-specific help: \"liquibase &lt;command-name> --help\"\r\n\r\nGlobal Options\r\n      --allow-duplicated-changeset-identifiers=PARAM\r\n                             Allows duplicated changeset identifiers without failing Liquibase execution.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.allowDuplicatedChangesetIdentifiers', environment variable:\r\n                               'LIQUIBASE_ALLOW_DUPLICATED_CHANGESET_IDENTIFIERS')\r\n\r\n      --always-drop-instead-of-replace=PARAM\r\n                             If true, drop and recreate a view instead of replacing it.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.alwaysDropInsteadOfReplace', environment variable: 'LIQUIBASE_ALWAYS_DROP_INSTEAD_OF_REPLACE')\r\n\r\n      --always-override-stored-logic-schema=PARAM\r\n                             When generating SQL for createProcedure, should the procedure schema be forced to the default schema if no schemaName attribute is set?\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.alwaysOverrideStoredLogicSchema', environment variable: 'LIQUIBASE_ALWAYS_OVERRIDE_STORED_LOGIC_SCHEMA')\r\n\r\n      --analytics-enabled=PARAM\r\n                             Enable or disable sending product usage data and analytics to Liquibase. Learn more at https:\/\/docs.liquibase.com\/analytics. DEFAULT:\r\n                               true for OSS users | false for PRO users\r\n                             (defaults file: 'liquibase.analytics.enabled', environment variable: 'LIQUIBASE_ANALYTICS_ENABLED')\r\n\r\n      --auto-reorg=PARAM     Should Liquibase automatically include REORG TABLE commands when needed?\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.autoReorg', environment variable: 'LIQUIBASE_AUTO_REORG')\r\n\r\n      --changelog-lock-poll-rate=PARAM\r\n                             Number of seconds wait between checks to the changelog lock when it is locked\r\n                             DEFAULT: 10\r\n                             (defaults file: 'liquibase.changelogLockPollRate', environment variable: 'LIQUIBASE_CHANGELOG_LOCK_POLL_RATE')\r\n\r\n      --changelog-lock-wait-time-in-minutes=PARAM\r\n                             Number of minutes to wait for the changelog lock to be available before giving up\r\n                             DEFAULT: 5\r\n                             (defaults file: 'liquibase.changelogLockWaitTimeInMinutes', environment variable: 'LIQUIBASE_CHANGELOG_LOCK_WAIT_TIME_IN_MINUTES')\r\n\r\n      --changelog-parse-mode=PARAM\r\n                             Configures how to handle unknown fields in changelog files. Possible values: STRICT which causes parsing to fail, and LAX which\r\n                               continues with the parsing.\r\n                             DEFAULT: STRICT\r\n                             (defaults file: 'liquibase.changelogParseMode', environment variable: 'LIQUIBASE_CHANGELOG_PARSE_MODE')\r\n\r\n      --classpath=PARAM      Additional classpath entries to use\r\n                             (defaults file: 'liquibase.classpath', environment variable: 'LIQUIBASE_CLASSPATH')\r\n\r\n      --convert-data-types=PARAM\r\n                             Should Liquibase convert to\/from STANDARD data types. Applies to both snapshot and update commands.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.convertDataTypes', environment variable: 'LIQUIBASE_CONVERT_DATA_TYPES')\r\n\r\n      --custom-log-data-file=PARAM\r\n                             &#91;PRO]\r\n                             Relative or fully qualified path to a yaml file containing key:value data to inject or exclude data from JSON structured logs. Learn\r\n                               more at https:\/\/docs.liquibase.com\/structured-logging\r\n                             (defaults file: 'liquibase.customLogDataFile', environment variable: 'LIQUIBASE_CUSTOM_LOG_DATA_FILE')\r\n\r\n      --custom-log-data-frequency=PARAM\r\n                             &#91;PRO]\r\n                             The frequency that the custom log data will be entered into the logs. Available options are: ONCE,REPEATED\r\n                             DEFAULT: REPEATED\r\n                             (defaults file: 'liquibase.customLogDataFrequency', environment variable: 'LIQUIBASE_CUSTOM_LOG_DATA_FREQUENCY')\r\n\r\n      --database-changelog-lock-table-name=PARAM\r\n                             Name of table to use for tracking concurrent Liquibase usage\r\n                             DEFAULT: DATABASECHANGELOGLOCK\r\n                             (defaults file: 'liquibase.databaseChangelogLockTableName', environment variable: 'LIQUIBASE_DATABASE_CHANGELOG_LOCK_TABLE_NAME')\r\n\r\n      --database-changelog-table-name=PARAM\r\n                             Name of table to use for tracking change history\r\n                             DEFAULT: DATABASECHANGELOG\r\n                             (defaults file: 'liquibase.databaseChangelogTableName', environment variable: 'LIQUIBASE_DATABASE_CHANGELOG_TABLE_NAME')\r\n\r\n      --database-class=PARAM Class to use for Database implementation\r\n                             (defaults file: 'liquibase.databaseClass', environment variable: 'LIQUIBASE_DATABASE_CLASS')\r\n\r\n      --dbclhistory-capture-extensions=PARAM\r\n                             If true, extensions are captured in the history table\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.dbclhistory.captureExtensions', environment variable: 'LIQUIBASE_DBCLHISTORY_CAPTURE_EXTENSIONS')\r\n\r\n      --dbclhistory-capture-sql=PARAM\r\n                             If true, executed SQL is captured in the history table\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.dbclhistory.captureSql', environment variable: 'LIQUIBASE_DBCLHISTORY_CAPTURE_SQL')\r\n\r\n      --dbclhistory-enabled=PARAM\r\n                             &#91;PRO]\r\n                             This property enables Liquibase Pro users to store a record of all database changing liquibase operations in a new table\r\n                               DATABASECHANGELOGHISTORY. This table includes records of rollback, dropalls, and repeated runOnChange type activity, which is not\r\n                               available in the standard DATABASECHANGELOG table.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.dbclhistory.enabled', environment variable: 'LIQUIBASE_DBCLHISTORY_ENABLED')\r\n\r\n      --dbclhistory-severity=PARAM\r\n                             The exit code to use if an exception is encountered while recording history events\r\n                             DEFAULT: 1\r\n                             (defaults file: 'liquibase.dbclhistory.severity', environment variable: 'LIQUIBASE_DBCLHISTORY_SEVERITY')\r\n\r\n      --ddl-lock-timeout=PARAM\r\n                             The DDL_LOCK_TIMEOUT parameter indicates the number of seconds a DDL command should wait for the locks to become available before\r\n                               throwing the resource busy error message. This applies only to Oracle databases.\r\n                             (defaults file: 'liquibase.ddlLockTimeout', environment variable: 'LIQUIBASE_DDL_LOCK_TIMEOUT')\r\n\r\n      --defaults-file=PARAM  File with default Liquibase properties\r\n                             DEFAULT: liquibase.properties\r\n                             (defaults file: 'liquibase.defaultsFile', environment variable: 'LIQUIBASE_DEFAULTS_FILE')\r\n\r\n      --diff-column-order=PARAM\r\n                             Should Liquibase compare column order in diff operation?\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.diffColumnOrder', environment variable: 'LIQUIBASE_DIFF_COLUMN_ORDER')\r\n\r\n      --driver=PARAM         Database driver class\r\n                             (defaults file: 'liquibase.driver', environment variable: 'LIQUIBASE_DRIVER')\r\n\r\n      --driver-properties-file=PARAM\r\n                             Driver-specific properties\r\n                             (defaults file: 'liquibase.driverPropertiesFile', environment variable: 'LIQUIBASE_DRIVER_PROPERTIES_FILE')\r\n\r\n      --duplicate-file-mode=PARAM\r\n                             How to handle multiple files being found in the search path that have duplicate paths. Options are SILENT (do not log and choose one at\r\n                               random), DEBUG, INFO, WARN (log at the given level and choose one at random), or ERROR (fail current operation).\r\n                             DEFAULT: ERROR\r\n                             (defaults file: 'liquibase.duplicateFileMode', environment variable: 'LIQUIBASE_DUPLICATE_FILE_MODE')\r\n\r\n      --error-on-circular-include-all=PARAM\r\n                             Throw an error if Liquibase detects that an includeAll will cause a circular reference (and thus a changelog parse error).\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.errorOnCircularIncludeAll', environment variable: 'LIQUIBASE_ERROR_ON_CIRCULAR_INCLUDE_ALL')\r\n\r\n      --file-encoding=PARAM  Encoding to use when reading files. Valid values include: UTF-8, UTF-16, UTF-16BE, UTF-16LE, US-ASCII, or OS to use the system\r\n                               configured encoding.\r\n                             DEFAULT: UTF-8\r\n                             (defaults file: 'liquibase.fileEncoding', environment variable: 'LIQUIBASE_FILE_ENCODING')\r\n\r\n      --filter-log-messages=PARAM\r\n                             DEPRECATED: No longer used\r\n                             (defaults file: 'liquibase.filterLogMessages', environment variable: 'LIQUIBASE_FILTER_LOG_MESSAGES')\r\n\r\n      --generate-changeset-created-values=PARAM\r\n                             Should Liquibase include a 'created' attribute in diff\/generateChangelog changesets with the current datetime\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.generateChangesetCreatedValues', environment variable: 'LIQUIBASE_GENERATE_CHANGESET_CREATED_VALUES')\r\n\r\n      --generated-changeset-ids-contains-description=PARAM\r\n                             Should Liquibase include the change description in the id when generating changesets?\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.generatedChangesetIdsContainsDescription', environment variable:\r\n                               'LIQUIBASE_GENERATED_CHANGESET_IDS_CONTAINS_DESCRIPTION')\r\n\r\n  -h, --help                 Show this help message and exit\r\n\r\n      --headless=PARAM       Force Liquibase to think it has no access to a keyboard\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.headless', environment variable: 'LIQUIBASE_HEADLESS')\r\n\r\n      --include-catalog-in-specification=PARAM\r\n                             Should Liquibase include the catalog name when determining equality?\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.includeCatalogInSpecification', environment variable: 'LIQUIBASE_INCLUDE_CATALOG_IN_SPECIFICATION')\r\n\r\n      --include-relations-for-computed-columns=PARAM\r\n                             If true, the parent relationship for computed columns is preserved in snapshot-dependent commands: snapshot and diff\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.includeRelationsForComputedColumns', environment variable:\r\n                               'LIQUIBASE_INCLUDE_RELATIONS_FOR_COMPUTED_COLUMNS')\r\n\r\n      --include-system-classpath=PARAM\r\n                             Include the system classpath when resolving classes at runtime\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.includeSystemClasspath', environment variable: 'LIQUIBASE_INCLUDE_SYSTEM_CLASSPATH')\r\n\r\n      --license-key=PARAM    Liquibase Pro or Liquibase Labs license key used to unlock paid capabilities. Get a free trial at\r\n                             https:\/\/liquibase.com\/trial and use in CLI or add liquibase.licenseKey=&lt;yourKey> into your defaults file.\r\n                             (defaults file: 'liquibase.licenseKey', environment variable: 'LIQUIBASE_LICENSE_KEY')\r\n\r\n      --liquibase-catalog-name=PARAM\r\n                             Catalog to use for Liquibase objects\r\n                             (defaults file: 'liquibase.liquibaseCatalogName', environment variable: 'LIQUIBASE_LIQUIBASE_CATALOG_NAME')\r\n\r\n      --liquibase-schema-name=PARAM\r\n                             Schema to use for Liquibase objects\r\n                             (defaults file: 'liquibase.liquibaseSchemaName', environment variable: 'LIQUIBASE_LIQUIBASE_SCHEMA_NAME')\r\n\r\n      --liquibase-tablespace-name=PARAM\r\n                             Tablespace to use for Liquibase objects\r\n                             (defaults file: 'liquibase.liquibaseTablespaceName', environment variable: 'LIQUIBASE_LIQUIBASE_TABLESPACE_NAME')\r\n\r\n      --log-channels=PARAM   DEFAULT: Controls which log channels have their level set by the liquibase.logLevel setting. Comma separate multiple values. To set the\r\n                               level of all channels, use 'all'. Example: liquibase,org.mariadb.jdbc\r\n                             (defaults file: 'liquibase.logChannels', environment variable: 'LIQUIBASE_LOG_CHANNELS')\r\n\r\n      --log-file=PARAM       (defaults file: 'liquibase.logFile', environment variable: 'LIQUIBASE_LOG_FILE')\r\n\r\n      --log-format=PARAM     Sets the format of log output to console or log files. Open Source users default to unstructured \"TEXT\" logs to the console or output\r\n                               log files. Pro users have the option to set value as \"JSON\" or \"JSON_PRETTY\" to enable json-structured log files to the console or\r\n                               output log files.\r\n                             DEFAULT: TEXT\r\n                             (defaults file: 'liquibase.logFormat', environment variable: 'LIQUIBASE_LOG_FORMAT')\r\n\r\n      --log-level=PARAM      DEFAULT: Controls which logs get set to stderr AND to any log file. The CLI defaults, if log file set, to SEVERE. Others vary by\r\n                               integration. The official log levels are: OFF, SEVERE, WARNING, INFO, FINE\r\n                             (defaults file: 'liquibase.logLevel', environment variable: 'LIQUIBASE_LOG_LEVEL')\r\n\r\n      --mirror-console-messages-to-log=PARAM\r\n                             When set to true, the console messages are mirrored to the logs as &#91;liquibase.ui] to provide a more complete picture of liquibase\r\n                               operations to log analysis tools. Set to false to change this behavior.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.mirrorConsoleMessagesToLog', environment variable: 'LIQUIBASE_MIRROR_CONSOLE_MESSAGES_TO_LOG')\r\n\r\n      --mirror-output-to-console=PARAM\r\n                             &#91;PRO]\r\n                             When set to true, console output will be mirrored to both the specified output-file and the console. If output-file is not set, the\r\n                               'mirror-output-to-console' argument has no effect.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.mirrorOutputToConsole', environment variable: 'LIQUIBASE_MIRROR_OUTPUT_TO_CONSOLE')\r\n\r\n      --missing-property-mode=PARAM\r\n                             How to handle changelog property expressions where a value is not set. For example, a string 'null' when no 'address' property was\r\n                               defined. Values can be: 'preserve' which leaves the string as-is, 'empty' which replaces it with an empty string, or 'error' which\r\n                               stops processing with an error.\r\n                             DEFAULT: PRESERVE\r\n                             (defaults file: 'liquibase.missingPropertyMode', environment variable: 'LIQUIBASE_MISSING_PROPERTY_MODE')\r\n\r\n      --monitor-performance=PARAM\r\n                             Enable performance tracking. Set to 'false' to disable. If set to 'true', data is stored to a `liquibase-TIMESTAMP.jfr` file in your\r\n                               working directory. Any other value will enable tracking and be used as the name of the file to write the data to.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.monitorPerformance', environment variable: 'LIQUIBASE_MONITOR_PERFORMANCE')\r\n\r\n      --on-missing-include-changelog=PARAM\r\n                             If set to WARN, then liquibase will not throw exception on missing changelog file, instead will show a warning message.\r\n                             DEFAULT: FAIL\r\n                             (defaults file: 'liquibase.onMissingIncludeChangelog', environment variable: 'LIQUIBASE_ON_MISSING_INCLUDE_CHANGELOG')\r\n\r\n      --output-file=PARAM    (defaults file: 'liquibase.outputFile', environment variable: 'LIQUIBASE_OUTPUT_FILE')\r\n\r\n      --output-file-encoding=PARAM\r\n                             Encoding to use when writing files\r\n                             DEFAULT: UTF-8\r\n                             (defaults file: 'liquibase.outputFileEncoding', environment variable: 'LIQUIBASE_OUTPUT_FILE_ENCODING')\r\n\r\n      --output-line-separator=PARAM\r\n                             Line separator for output\r\n                             DEFAULT: Line separator(LF or CRLF) for output. Defaults to OS default\r\n                             (defaults file: 'liquibase.outputLineSeparator', environment variable: 'LIQUIBASE_OUTPUT_LINE_SEPARATOR')\r\n\r\n      --preserve-classpath-prefix-in-normalized-paths=PARAM\r\n                             If true 'classpath:' prefix will be preserved in normalized paths, allowing to resolve hierarchical resources under a classpath-based\r\n                               root.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.preserveClasspathPrefixInNormalizedPaths', environment variable:\r\n                               'LIQUIBASE_PRESERVE_CLASSPATH_PREFIX_IN_NORMALIZED_PATHS')\r\n\r\n      --preserve-schema-case=PARAM\r\n                             If true, Liquibase treats schema and catalog names as case sensitive\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.preserveSchemaCase', environment variable: 'LIQUIBASE_PRESERVE_SCHEMA_CASE')\r\n\r\n      --pro-global-end-delimiter=PARAM\r\n                             &#91;PRO]\r\n                             The default end delimiter to use for all change sets\r\n                             (defaults file: 'liquibase.pro.globalEndDelimiter', environment variable: 'LIQUIBASE_PRO_GLOBAL_END_DELIMITER')\r\n\r\n      --pro-global-end-delimiter-prioritized=PARAM\r\n                             &#91;PRO]\r\n                             If true, the global end delimiter overrides all other settings\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.pro.globalEndDelimiter.prioritized', environment variable: 'LIQUIBASE_PRO_GLOBAL_END_DELIMITER_PRIORITIZED')\r\n\r\n      --pro-global-strip-comments=PARAM\r\n                             &#91;PRO]\r\n                             The default strip comments to use for all change sets\r\n                             (defaults file: 'liquibase.pro.globalStripComments', environment variable: 'LIQUIBASE_PRO_GLOBAL_STRIP_COMMENTS')\r\n\r\n      --pro-global-strip-comments-prioritized=PARAM\r\n                             &#91;PRO]\r\n                             If true, the global strip comments overrides all other settings\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.pro.globalStripComments.prioritized', environment variable:\r\n                               'LIQUIBASE_PRO_GLOBAL_STRIP_COMMENTS_PRIORITIZED')\r\n\r\n      --pro-license-key=PARAM\r\n                             DEPRECATED: Liquibase Pro license key used to unlock paid capabilities. Get a free trial at\r\n                              https:\/\/www.liquibase.com\/protrial and use in CLI or add liquibase.pro.licenseKey=&lt;yourKey> into your defaults file.\r\n                             (defaults file: 'liquibase.pro.licenseKey', environment variable: 'LIQUIBASE_PRO_LICENSE_KEY')\r\n\r\n      --pro-mark-unused-not-drop=PARAM\r\n                             If a column would be dropped in a diffChangeLog, call markUnused instead if set to true\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.pro.markUnusedNotDrop', environment variable: 'LIQUIBASE_PRO_MARK_UNUSED_NOT_DROP')\r\n\r\n      --pro-sql-inline=PARAM If true, generate changeSets with SQL-based changes inlined instead of saving them to an external file\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.pro.sql.inline', environment variable: 'LIQUIBASE_PRO_SQL_INLINE')\r\n\r\n      --pro-strict=PARAM     &#91;PRO]\r\n                             If true, the Liquibase operations will fail when specified paths to Pro resource files (flow files, checks settings files, native\r\n                               executor conf files, etc) or rollback scripts are missing or empty.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.proStrict', environment variable: 'LIQUIBASE_PRO_STRICT')\r\n\r\n      --pro-synonyms-drop-public=PARAM\r\n                             If false, do not drop public synonyms in diffChangeLog\/dropAll\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.pro.synonyms.drop.public', environment variable: 'LIQUIBASE_PRO_SYNONYMS_DROP_PUBLIC')\r\n\r\n      --prompt-for-non-local-database=PARAM\r\n                             Should Liquibase prompt if a non-local database is being accessed\r\n                             (defaults file: 'liquibase.promptForNonLocalDatabase', environment variable: 'LIQUIBASE_PROMPT_FOR_NON_LOCAL_DATABASE')\r\n\r\n      --property-provider-class=PARAM\r\n                             Implementation of Properties class to provide additional driver properties\r\n                             (defaults file: 'liquibase.propertyProviderClass', environment variable: 'LIQUIBASE_PROPERTY_PROVIDER_CLASS')\r\n\r\n      --psql-args=PARAM      Extra arguments which will be passed to the psql executable\r\n                             (defaults file: 'liquibase.psql.args', environment variable: 'LIQUIBASE_PSQL_ARGS')\r\n\r\n      --psql-keep-temp=PARAM Retain generated sql files\r\n                             (defaults file: 'liquibase.psql.keep.temp', environment variable: 'LIQUIBASE_PSQL_KEEP_TEMP')\r\n\r\n      --psql-keep-temp-name=PARAM\r\n                             Optionally, specify a custom filename\r\n                             (defaults file: 'liquibase.psql.keep.temp.name', environment variable: 'LIQUIBASE_PSQL_KEEP_TEMP_NAME')\r\n\r\n      --psql-keep-temp-path=PARAM\r\n                             Optionally, specify the path in which to store the temporary files. If not specified, the files will be stored in the system's temp\r\n                               directory\r\n                             (defaults file: 'liquibase.psql.keep.temp.path', environment variable: 'LIQUIBASE_PSQL_KEEP_TEMP_PATH')\r\n\r\n      --psql-log-file=PARAM  Log file for psql output\r\n                             (defaults file: 'liquibase.psql.logFile', environment variable: 'LIQUIBASE_PSQL_LOG_FILE')\r\n\r\n      --psql-path=PARAM      Path to psql executable\r\n                             (defaults file: 'liquibase.psql.path', environment variable: 'LIQUIBASE_PSQL_PATH')\r\n\r\n      --psql-timeout=PARAM   Seconds to wait for psql timeout\r\n                             (defaults file: 'liquibase.psql.timeout', environment variable: 'LIQUIBASE_PSQL_TIMEOUT')\r\n\r\n      --reports-enabled=PARAM\r\n                             &#91;PRO]\r\n                             Enable or disable reporting.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.reports.enabled', environment variable: 'LIQUIBASE_REPORTS_ENABLED')\r\n\r\n      --reports-name=PARAM   &#91;PRO]\r\n                             The name of the reports.\r\n                             DEFAULT: report-dd-MMM-yyyy-HHmmss\r\n                             (defaults file: 'liquibase.reports.name', environment variable: 'LIQUIBASE_REPORTS_NAME')\r\n\r\n      --reports-open=PARAM   &#91;PRO]\r\n                             Open the newly generated report in your default browser.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.reports.open', environment variable: 'LIQUIBASE_REPORTS_OPEN')\r\n\r\n      --reports-path=PARAM   &#91;PRO]\r\n                             The path to the directory to generate the reports.\r\n                             DEFAULT: .\r\n                             (defaults file: 'liquibase.reports.path', environment variable: 'LIQUIBASE_REPORTS_PATH')\r\n\r\n      --search-path=PARAM    Complete list of Location(s) to search for files such as changelog files in. Multiple paths can be specified by separating them with\r\n                               commas.\r\n                             (defaults file: 'liquibase.searchPath', environment variable: 'LIQUIBASE_SEARCH_PATH')\r\n\r\n      --secure-parsing=PARAM If true, remove functionality from file parsers which could be used insecurely. Examples include (but not limited to) disabling remote\r\n                               XML entity support.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.secureParsing', environment variable: 'LIQUIBASE_SECURE_PARSING')\r\n\r\n      --should-run=PARAM     Should Liquibase commands execute\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.shouldRun', environment variable: 'LIQUIBASE_SHOULD_RUN')\r\n\r\n      --should-snapshot-data=PARAM\r\n                             Should Liquibase snapshot data by default?\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.shouldSnapshotData', environment variable: 'LIQUIBASE_SHOULD_SNAPSHOT_DATA')\r\n\r\n      --show-banner=PARAM    If true, show a Liquibase banner on startup.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.showBanner', environment variable: 'LIQUIBASE_SHOW_BANNER')\r\n\r\n      --sql-log-level=PARAM  Level to log SQL statements to\r\n                             DEFAULT: FINE\r\n                             (defaults file: 'liquibase.sql.logLevel', environment variable: 'LIQUIBASE_SQL_LOG_LEVEL')\r\n\r\n      --sql-show-sql-warnings=PARAM\r\n                             Show SQLWarning messages\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.sql.showSqlWarnings', environment variable: 'LIQUIBASE_SQL_SHOW_SQL_WARNINGS')\r\n\r\n      --sqlcmd-args=PARAM    Extra arguments which will be passed to the sqlcmd executable\r\n                             (defaults file: 'liquibase.sqlcmd.args', environment variable: 'LIQUIBASE_SQLCMD_ARGS')\r\n\r\n      --sqlcmd-catalog-name=PARAM\r\n                             Database to use when running SQLCMD\r\n                             (defaults file: 'liquibase.sqlcmd.catalogName', environment variable: 'LIQUIBASE_SQLCMD_CATALOG_NAME')\r\n\r\n      --sqlcmd-keep-temp=PARAM\r\n                             If true, do not delete temporary sql files generated\r\n                             (defaults file: 'liquibase.sqlcmd.keep.temp', environment variable: 'LIQUIBASE_SQLCMD_KEEP_TEMP')\r\n\r\n      --sqlcmd-keep-temp-name=PARAM\r\n                             Optionally, specify a custom filename\r\n                             (defaults file: 'liquibase.sqlcmd.keep.temp.name', environment variable: 'LIQUIBASE_SQLCMD_KEEP_TEMP_NAME')\r\n\r\n      --sqlcmd-keep-temp-overwrite=PARAM\r\n                             If true, overwrite any files in the specified directory with the same name\r\n                             (defaults file: 'liquibase.sqlcmd.keep.temp.overwrite', environment variable: 'LIQUIBASE_SQLCMD_KEEP_TEMP_OVERWRITE')\r\n\r\n      --sqlcmd-keep-temp-path=PARAM\r\n                             Optionally, specify the path in which to store the temporary files. If not specified, the files will be stored in the system's temp\r\n                               directory.\r\n                             (defaults file: 'liquibase.sqlcmd.keep.temp.path', environment variable: 'LIQUIBASE_SQLCMD_KEEP_TEMP_PATH')\r\n\r\n      --sqlcmd-log-file=PARAM\r\n                             Log file for SQLCMD output\r\n                             (defaults file: 'liquibase.sqlcmd.logFile', environment variable: 'LIQUIBASE_SQLCMD_LOG_FILE')\r\n\r\n      --sqlcmd-path=PARAM    Path to sqlcmd executable\r\n                             (defaults file: 'liquibase.sqlcmd.path', environment variable: 'LIQUIBASE_SQLCMD_PATH')\r\n\r\n      --sqlcmd-timeout=PARAM Seconds to wait for sqlcmd timeout\r\n                             (defaults file: 'liquibase.sqlcmd.timeout', environment variable: 'LIQUIBASE_SQLCMD_TIMEOUT')\r\n\r\n      --sqlplus-args=PARAM   Extra arguments which will be passed to the sqlplus executable\r\n                             (defaults file: 'liquibase.sqlplus.args', environment variable: 'LIQUIBASE_SQLPLUS_ARGS')\r\n\r\n      --sqlplus-create-spool=PARAM\r\n                             If true, create an Oracle spool file\r\n                             (defaults file: 'liquibase.sqlplus.createSpool', environment variable: 'LIQUIBASE_SQLPLUS_CREATE_SPOOL')\r\n\r\n      --sqlplus-keep-temp-name=PARAM\r\n                             Optionally, specify a custom filename\r\n                             (defaults file: 'liquibase.sqlplus.keep.temp.name', environment variable: 'LIQUIBASE_SQLPLUS_KEEP_TEMP_NAME')\r\n\r\n      --sqlplus-keep-temp-overwrite=PARAM\r\n                             If true, overwrite any files in the specified directory with the same name\r\n                             (defaults file: 'liquibase.sqlplus.keep.temp.overwrite', environment variable: 'LIQUIBASE_SQLPLUS_KEEP_TEMP_OVERWRITE')\r\n\r\n      --sqlplus-keep-temp-path=PARAM\r\n                             Optionally, specify the path in which to store the temporary files. If not specified, the files will be stored in the system's temp\r\n                               directory.\r\n                             (defaults file: 'liquibase.sqlplus.keep.temp.path', environment variable: 'LIQUIBASE_SQLPLUS_KEEP_TEMP_PATH')\r\n\r\n      --sqlplus-password=PARAM\r\n                             Optionally, specify the pasword to use when executing. If not specified, the regular password will be used.\r\n                             (defaults file: 'liquibase.sqlplus.password', environment variable: 'LIQUIBASE_SQLPLUS_PASSWORD')\r\n\r\n      --sqlplus-path=PARAM   Path to sqlplus executable\r\n                             (defaults file: 'liquibase.sqlplus.path', environment variable: 'LIQUIBASE_SQLPLUS_PATH')\r\n\r\n      --sqlplus-sqlerror=PARAM\r\n                             Value to be used for the WHENEVER clause when sqlplus executes\r\n                             (defaults file: 'liquibase.sqlplus.sqlerror', environment variable: 'LIQUIBASE_SQLPLUS_SQLERROR')\r\n\r\n      --sqlplus-timeout=PARAM\r\n                             Seconds to wait for sqlplus timeout\r\n                             (defaults file: 'liquibase.sqlplus.timeout', environment variable: 'LIQUIBASE_SQLPLUS_TIMEOUT')\r\n\r\n      --sqlplus-username=PARAM\r\n                             Optionally, specify the username to use when executing. If not specified, the regular username will be used.\r\n                             (defaults file: 'liquibase.sqlplus.username', environment variable: 'LIQUIBASE_SQLPLUS_USERNAME')\r\n\r\n      --strict=PARAM         If true, Liquibase enforces certain best practices and proactively looks for common errors\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.strict', environment variable: 'LIQUIBASE_STRICT')\r\n\r\n      --support-property-escaping=PARAM\r\n                             Support escaping changelog parameters using a colon. Example: null\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.supportPropertyEscaping', environment variable: 'LIQUIBASE_SUPPORT_PROPERTY_ESCAPING')\r\n\r\n      --supports-method-validation-level=PARAM\r\n                             Controls the level of validation performed on the supports method of Change classes. Options are OFF, WARN, FAIL.\r\n                             DEFAULT: WARN\r\n                             (defaults file: 'liquibase.supportsMethodValidationLevel', environment variable: 'LIQUIBASE_SUPPORTS_METHOD_VALIDATION_LEVEL')\r\n\r\n      --suppress-liquibase-sql=PARAM\r\n                             When set to true, this global property prevents DBCL and DBCLH sql from being present in console and logs during *-sql commands, such\r\n                               as update-sql, rollback-sql, etc.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.suppressLiquibaseSql', environment variable: 'LIQUIBASE_SUPPRESS_LIQUIBASE_SQL')\r\n\r\n      --trim-load-data-file-header=PARAM\r\n                             If true column headers will be trimmed in case they were specified with spaces in the file.\r\n                             DEFAULT: false\r\n                             (defaults file: 'liquibase.trimLoadDataFileHeader', environment variable: 'LIQUIBASE_TRIM_LOAD_DATA_FILE_HEADER')\r\n\r\n      --ui-service=PARAM     Changes the default UI Service Logger used by Liquibase. Options are CONSOLE or LOGGER.\r\n                             DEFAULT: CONSOLE\r\n                             (defaults file: 'liquibase.uiService', environment variable: 'LIQUIBASE_UI_SERVICE')\r\n\r\n      --use-procedure-schema=PARAM\r\n                             If set to true (default value), createProcedure tags with a set schemaName will modify the procedure body with the given schema name.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.useProcedureSchema', environment variable: 'LIQUIBASE_USE_PROCEDURE_SCHEMA')\r\n\r\n  -v, --version              Print version information and exit\r\n\r\n      --validate-xml-changelog-files=PARAM\r\n                             Will perform XSD validation of XML changelog files. When many XML changelog files are included, this validation may impact Liquibase\r\n                               performance. Defaults to true.\r\n                             DEFAULT: true\r\n                             (defaults file: 'liquibase.validateXmlChangelogFiles', environment variable: 'LIQUIBASE_VALIDATE_XML_CHANGELOG_FILES')\r\n\r\n\r\nCommands\r\n  calculate-checksum            Calculates and prints a checksum for the changeset\r\n\r\n  changelog-sync                Marks all changes as executed in the database\r\n\r\n  changelog-sync-sql            Output the raw SQL used by Liquibase when running changelogSync\r\n\r\n  changelog-sync-to-tag         Marks all undeployed changesets as executed, up to a tag\r\n\r\n  changelog-sync-to-tag-sql     Output the raw SQL used by Liquibase when running changelogSyncToTag\r\n\r\n  checks                        &lt; Policy Checks commands >\r\n\r\n  clear-checksums               Clears all checksums\r\n\r\n  connect                       &#91;PRO]\r\n                                Tests the connection properties (url, username, password). Returns database's response, if any, with success or failure.\r\n\r\n  db-doc                        Generates JavaDoc documentation for the existing database and changelogs\r\n\r\n  dbcl-history                  &#91;PRO]\r\n                                List all rows from the Liquibase Pro 'DATABASECHANGELOGHISTORY' tracking table.\r\n\r\n  diff                          Outputs a description of differences.  If you have a Liquibase Pro key, you can output the differences as JSON using the\r\n                                  --format=JSON option\r\n\r\n  diff-changelog                Compare two databases to produce changesets and write them to a changelog file\r\n\r\n  drop-all                      Drop all database objects owned by the user\r\n\r\n  execute-sql                   Execute a SQL string or file\r\n\r\n  flow                          &#91;PRO]\r\n                                Run a series of commands contained in one or more stages, as configured in a liquibase flow-file.\r\n\r\n  future-rollback-count-sql     Generates SQL to sequentially revert &lt;count> number of changes\r\n\r\n  future-rollback-from-tag-sql  Generates SQL to revert future changes up to the specified tag\r\n\r\n  future-rollback-sql           Generate the raw SQL needed to rollback undeployed changes\r\n\r\n  generate-changelog            Generate a changelog\r\n\r\n  history                       List all deployed changesets and their deployment ID\r\n\r\n  init                          &lt; Init commands >\r\n\r\n  list-locks                    List the hostname, IP address, and timestamp of the Liquibase lock record\r\n\r\n  mark-next-changeset-ran       Marks the next change you apply as executed in your database\r\n\r\n  mark-next-changeset-ran-sql   Writes the SQL used to mark the next change you apply as executed in your database\r\n\r\n  release-locks                 Remove the Liquibase lock record from the DATABASECHANGELOG table\r\n\r\n  rollback                      Rollback changes made to the database based on the specific tag\r\n\r\n  rollback-count                Rollback the specified number of changes made to the database\r\n\r\n  rollback-count-sql            Generate the SQL to rollback the specified number of changes\r\n\r\n  rollback-one-changeset        &#91;PRO]\r\n                                Rollback one changeset from the database\r\n\r\n  rollback-one-changeset-sql    &#91;PRO]\r\n                                Rollback one changeset from the database\r\n\r\n  rollback-one-update           &#91;PRO]\r\n                                Rollback one update from the database\r\n\r\n  rollback-one-update-sql       &#91;PRO]\r\n                                Rollback one update from the database\r\n\r\n  rollback-sql                  Generate the SQL to rollback changes made to the database based on the specific tag\r\n\r\n  rollback-to-date              Rollback changes made to the database based on the specific date\r\n\r\n  rollback-to-date-sql          Generate the SQL to rollback changes made to the database based on the specific date\r\n\r\n  set-contexts                  &#91;PRO]\r\n                                Bulk set contexts in the changelog file\r\n\r\n  set-labels                    &#91;PRO]\r\n                                Bulk set labels in the changelog file\r\n\r\n  snapshot                      Capture the current state of the database\r\n\r\n  snapshot-reference            Capture the current state of the reference database\r\n\r\n  status                        Generate a list of pending changesets\r\n\r\n  tag                           Mark the current database state with the specified tag\r\n\r\n  tag-exists                    Verify the existence of the specified tag\r\n\r\n  unexpected-changesets         Generate a list of changesets that have been executed but are not in the current changelog\r\n\r\n  update                        Deploy any changes in the changelog file that have not been deployed\r\n\r\n  update-count                  Deploy the specified number of changes from the changelog file\r\n\r\n  update-count-sql              Generate the SQL to deploy the specified number of changes\r\n\r\n  update-one-changeset          &#91;PRO]\r\n                                Runs single changeset\r\n\r\n  update-one-changeset-sql      &#91;PRO]\r\n                                Generates sql to run single changeset\r\n\r\n  update-sql                    Generate the SQL to deploy changes in the changelog which have not been deployed\r\n\r\n  update-testing-rollback       Updates database, then rolls back changes before updating again. Useful for testing rollback support\r\n\r\n  update-to-tag                 Deploy changes from the changelog file to the specified tag\r\n\r\n  update-to-tag-sql             Generate the SQL to deploy changes up to the tag\r\n\r\n  validate                      Validate the changelog for errors\r\n\r\n\r\nEach argument contains the corresponding 'configuration key' in parentheses. As an alternative to passing values on the command line, these keys can be used as a\r\nbasis for configuration settings in other locations.\r\n\r\nAvailable configuration locations, in order of priority:\r\n- Command line arguments (argument name in --help)\r\n- Java system properties (configuration key listed above)\r\n- Environment values (env variable listed above)\r\n- Defaults file (configuration key OR argument name)\r\n\r\nFull documentation is available at\r\nhttps:&#47;&#47;docs.liquibase.com\r\n&#91;root@gbase_rh7_003 liquibasegbase]#\r\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/docs.liquibase.com\n<\/div><\/figure>\n\n\n\n<p>[root@gbase_rh7_003&nbsp;~]#<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Liquibase \u662f\u7ba1\u7406\u4e1a\u52a1\u4e2d\u6570\u636e\u5e93\u7ed3\u6784\u7248\u672c\u7684\uff0c\u7528\u4e8e\u8ddf\u8e2a\u3001\u7ba1\u7406\u548c\u5e94\u7528\u6570\u636e\u5e93(\u8868\u7ed3\u6784\uff0c\u6570\u636e\u7b49)\u53d8\u5316\uff0c\u6240\u4ee5\u5c31\u4f1a\u6709\u8fd9\u4e9b\u6982\u5ff5\uff1a\u7248\u672c\u53f7\uff0c\u7ba1\u7406\u7684\u6570\u636e\uff0c\u5dee\u5f02\u6bd4\u8f83\uff0c\u7248\u672c\u56de\u6eda\u3002\u76ee\u524dLiquibase\u5b98\u65b9\u4e0d\u652f\u6301GBase 8a\u6570\u636e\u5e93\uff0c\u4f46\u53ef\u4ee5\u7528mysql\u9a71\u52a8\u3002\u672c\u6587\u7b80\u5355\u4ecb\u7ecdliquibase\u5e76\u5bf9GBase 8a\u96c6\u7fa49.5.3\u7248\u672c\u7ba1\u7406\u7684\u6837\u4f8b<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[79],"tags":[],"class_list":["post-12307","post","type-post","status-publish","format-standard","hentry","category-79"],"_links":{"self":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts\/12307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/comments?post=12307"}],"version-history":[{"count":12,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts\/12307\/revisions"}],"predecessor-version":[{"id":12886,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts\/12307\/revisions\/12886"}],"wp:attachment":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/media?parent=12307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/categories?post=12307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/tags?post=12307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}