{"id":122600,"date":"2024-05-21T10:04:32","date_gmt":"2024-05-21T07:04:32","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=122600"},"modified":"2024-05-21T10:08:04","modified_gmt":"2024-05-21T07:08:04","slug":"creating-postgresql-schema-before-liquibase-execution","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html","title":{"rendered":"Creating PostgreSQL Schema Before Liquibase Execution"},"content":{"rendered":"<h2 class=\"wp-block-heading\">1. Enhancing PostgreSQL Schema Management<\/h2>\n<p>In PostgreSQL database management, organizing database entities into separate schemas is a best practice for maintaining clarity and security in multi-tenant or large-scale applications. While PostgreSQL defaults to the <code>public<\/code> schema, this can become cluttered in complex systems. This article explores how to leverage Liquibase, a database schema migration tool, to manage database changes within a custom schema and tackle the challenge of how to create a Java PostgreSQL schema before Liquibase execution. Moreover, we&#8217;ll demonstrate these concepts using a simple Spring Boot application connected to a PostgreSQL database.<\/p>\n<h2 class=\"wp-block-heading\">2. Java Spring Boot Application Setup with Liquibase for PostgreSQL Schema Evolution<\/h2>\n<p><a href=\"https:\/\/www.liquibase.com\">Liquibase<\/a> is a powerful open-source tool designed for managing database schema changes in a flexible and efficient manner. It supports various database platforms, including PostgreSQL, and provides developers with a declarative approach to version control and execute database changes.<\/p>\n<p>To integrate Liquibase into your Spring Boot project for managing PostgreSQL schema changes, Begin by setting up a Spring Boot application with Liquibase for managing database migrations. Ensure Liquibase is included as a dependency in your <code>pom.xml<\/code> (for Maven) or <code>build.gradle<\/code> (for Gradle) file.<\/p>\n<p>Add the following dependency to your <code>pom.xml<\/code> file within the <code>&lt;dependencies&gt;<\/code> section:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;dependency&gt;\n    &lt;groupId&gt;org.liquibase&lt;\/groupId&gt;\n    &lt;artifactId&gt;liquibase-core&lt;\/artifactId&gt;\n    &lt;version&gt;4.8.0&lt;\/version&gt; &lt;!-- Replace with the latest version --&gt;\n&lt;\/dependency&gt;\n<\/pre>\n<\/div>\n<p>Add the following dependency to your <code>build.gradle<\/code> file under the <code>dependencies<\/code> block:<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimplementation &#039;org.liquibase:liquibase-core:4.8.0&#039; \/\/ Replace with the latest version\n<\/pre>\n<\/div>\n<p>After adding the Liquibase dependency, you can start utilizing Liquibase within your Java project to manage PostgreSQL schema changes effectively.<\/p>\n<h2 class=\"wp-block-heading\">3. Operating Liquibase Within a Custom <strong>PostgreSQL<\/strong> Schema<\/h2>\n<p>To use a custom schema with Liquibase in a Spring Boot application:<\/p>\n<h3 class=\"wp-block-heading\">3.1. Define PostgreSQL Schema in Change Sets<\/h3>\n<p>Explicitly specify the schema name in your Liquibase changelog YAML file <code>db.changelog-master.yaml<\/code> for all database objects and migrations. <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\n  - changeSet:\n      id: 1\n      author: assar\n      schemaName: my_schema\n      changes:\n        - createTable:\n            tableName: item\n            columns:\n              - column:\n                  name: id\n                  type: UUID\n                  constraints:\n                    primaryKey: true\n                    nullable: false\n              - column:\n                  name: name\n                  type: varchar(255)\n              - column:\n                  name: unit_price\n                  type: decimal(19,2)\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">3.2. Configuring Liquibase in Spring Boot for Custom Schema Operations<\/h3>\n<p>Update your <code>application.properties<\/code> or <code>application.yml<\/code> to specify the default schema for Liquibase operations.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\nspring.liquibase.change-log=classpath:db\/changelog\/db.changelog-master.yaml\nspring.liquibase.default-schema=my_schema\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">3.3. Executing Liquibase Commands in a Custom Schema Context<\/h3>\n<p>When running Liquibase commands within your Spring Boot application, ensure the specified schema is considered.<\/p>\n<p>For example, using the Liquibase Maven plugin:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nmvn liquibase:update\n<\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\">4. Create Java PostgreSQL Schema Before Liquibase Execution<\/h2>\n<p>To create the target Java PostgreSQL schema before Liquibase attempts to apply changes, integrate schema creation into your Spring Boot application setup process. <\/p>\n<p>Using Spring Boot&#8217;s <code>ApplicationRunner<\/code> or <code>CommandLineRunner<\/code>, execute the following SQL script on application startup to create the desired schema:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nCREATE SCHEMA IF NOT EXISTS my_schema;\n<\/pre>\n<\/div>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport org.springframework.boot.ApplicationArguments;\nimport org.springframework.boot.ApplicationRunner;\nimport org.springframework.jdbc.core.JdbcTemplate;\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class SchemaInitializer implements ApplicationRunner {\n\n    private final JdbcTemplate jdbcTemplate;\n\n    public SchemaInitializer(JdbcTemplate jdbcTemplate) {\n        this.jdbcTemplate = jdbcTemplate;\n    }\n\n    @Override\n    public void run(ApplicationArguments args) throws Exception {\n        jdbcTemplate.execute(&quot;CREATE SCHEMA IF NOT EXISTS my_schema&quot;);\n    }\n\n<\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\">5. Conclusion<\/h2>\n<p>By leveraging Liquibase within a Spring Boot application and incorporating a custom schema, you can effectively manage PostgreSQL database schema changes. The integration enhances database organization and supports scalability and security in your Spring Boot applications. Ensure schema creation scripts are part of your deployment pipeline to maintain consistency and reliability in database migrations with Liquibase.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Enhancing PostgreSQL Schema Management In PostgreSQL database management, organizing database entities into separate schemas is a best practice for maintaining clarity and security in multi-tenant or large-scale applications. While PostgreSQL defaults to the public schema, this can become cluttered in complex systems. This article explores how to leverage Liquibase, a database schema migration tool, &hellip;<\/p>\n","protected":false},"author":589,"featured_media":15238,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[797,657,854],"class_list":["post-122600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-liquibase","tag-postgresql","tag-spring-boot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create Java Postgresql Schema Before Liquibase Execution<\/title>\n<meta name=\"description\" content=\"Discover how to efficiently create a Java PostgreSQL schema before executing Liquibase for schema management.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create Java Postgresql Schema Before Liquibase Execution\" \/>\n<meta property=\"og:description\" content=\"Discover how to efficiently create a Java PostgreSQL schema before executing Liquibase for schema management.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-21T07:04:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-21T07:08:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2013\/07\/liquibase-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ashraf Sarhan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashraf Sarhan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html\"},\"author\":{\"name\":\"Ashraf Sarhan\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/41260c61175c3d1b7630c05d8b01a050\"},\"headline\":\"Creating PostgreSQL Schema Before Liquibase Execution\",\"datePublished\":\"2024-05-21T07:04:32+00:00\",\"dateModified\":\"2024-05-21T07:08:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html\"},\"wordCount\":428,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/liquibase-logo.jpg\",\"keywords\":[\"Liquibase\",\"PostgreSQL\",\"Spring Boot\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html\",\"name\":\"Create Java Postgresql Schema Before Liquibase Execution\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/liquibase-logo.jpg\",\"datePublished\":\"2024-05-21T07:04:32+00:00\",\"dateModified\":\"2024-05-21T07:08:04+00:00\",\"description\":\"Discover how to efficiently create a Java PostgreSQL schema before executing Liquibase for schema management.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/liquibase-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/liquibase-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/creating-postgresql-schema-before-liquibase-execution.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Creating PostgreSQL Schema Before Liquibase Execution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/41260c61175c3d1b7630c05d8b01a050\",\"name\":\"Ashraf Sarhan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/ashraf_sarhan_photo-96x96.jpg\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/ashraf_sarhan_photo-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/ashraf_sarhan_photo-96x96.jpg\",\"caption\":\"Ashraf Sarhan\"},\"description\":\"With over 8 years of experience in the field, I have developed and maintained large-scale distributed applications for various domains, including library, audio books, and quant trading. I am passionate about OpenSource, CNCF\\\/DevOps, Microservices, and BigData, and I constantly seek to learn new technologies and tools. I hold two Oracle certifications in Java programming and business component development.\",\"sameAs\":[\"https:\\\/\\\/www.javacodegeeks.com\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ashraf-sarhan\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create Java Postgresql Schema Before Liquibase Execution","description":"Discover how to efficiently create a Java PostgreSQL schema before executing Liquibase for schema management.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html","og_locale":"en_US","og_type":"article","og_title":"Create Java Postgresql Schema Before Liquibase Execution","og_description":"Discover how to efficiently create a Java PostgreSQL schema before executing Liquibase for schema management.","og_url":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2024-05-21T07:04:32+00:00","article_modified_time":"2024-05-21T07:08:04+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2013\/07\/liquibase-logo.jpg","type":"image\/jpeg"}],"author":"Ashraf Sarhan","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ashraf Sarhan","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html"},"author":{"name":"Ashraf Sarhan","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/41260c61175c3d1b7630c05d8b01a050"},"headline":"Creating PostgreSQL Schema Before Liquibase Execution","datePublished":"2024-05-21T07:04:32+00:00","dateModified":"2024-05-21T07:08:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html"},"wordCount":428,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2013\/07\/liquibase-logo.jpg","keywords":["Liquibase","PostgreSQL","Spring Boot"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html","url":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html","name":"Create Java Postgresql Schema Before Liquibase Execution","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2013\/07\/liquibase-logo.jpg","datePublished":"2024-05-21T07:04:32+00:00","dateModified":"2024-05-21T07:08:04+00:00","description":"Discover how to efficiently create a Java PostgreSQL schema before executing Liquibase for schema management.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2013\/07\/liquibase-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2013\/07\/liquibase-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/creating-postgresql-schema-before-liquibase-execution.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Creating PostgreSQL Schema Before Liquibase Execution"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/41260c61175c3d1b7630c05d8b01a050","name":"Ashraf Sarhan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/ashraf_sarhan_photo-96x96.jpg","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/ashraf_sarhan_photo-96x96.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/ashraf_sarhan_photo-96x96.jpg","caption":"Ashraf Sarhan"},"description":"With over 8 years of experience in the field, I have developed and maintained large-scale distributed applications for various domains, including library, audio books, and quant trading. I am passionate about OpenSource, CNCF\/DevOps, Microservices, and BigData, and I constantly seek to learn new technologies and tools. I hold two Oracle certifications in Java programming and business component development.","sameAs":["https:\/\/www.javacodegeeks.com"],"url":"https:\/\/www.javacodegeeks.com\/author\/ashraf-sarhan"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/122600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/589"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=122600"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/122600\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/15238"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=122600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=122600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=122600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}