{"id":12872,"date":"2019-11-03T19:18:52","date_gmt":"2019-11-03T18:18:52","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/"},"modified":"2024-11-08T15:33:39","modified_gmt":"2024-11-08T14:33:39","slug":"handling-postgresql-installation-from-packages-internal-activity","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/","title":{"rendered":"Handling PostgreSQL installations from packages"},"content":{"rendered":"<p>[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; overlay_strength=&#8221;0.3&#8243; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_position=&#8221;all&#8221; background_color_opacity=&#8221;1&#8243; background_hover_color_opacity=&#8221;1&#8243; column_link_target=&#8221;_self&#8221; column_shadow=&#8221;none&#8221; column_border_radius=&#8221;none&#8221; width=&#8221;1\/1&#8243; tablet_width_inherit=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221; phone_text_alignment=&#8221;default&#8221; column_border_width=&#8221;none&#8221; column_border_style=&#8221;solid&#8221; bg_image_animation=&#8221;none&#8221;][vc_column_text]In this blog I will show how to handle a PostgreSQL installation with a customized PGDATA using the packages provided by the PostgreSQL community.<\/p>\n<p>One issue with the packages is the hard coded PGDATA, which will be overwritten in the Servicefile with each update of PostgreSQL. This blog entry based on PostgreSQL 12 with CentOS 7 and CentOS 8.<\/p>\n<p><!--more--><\/p>\n<p>On a minimal installation in my mind a few things are missing, the net-tools package and nano as editor, I&#8217;m a friend of using nano instead of vi.<\/p>\n<p>CentOS 7:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n$ yum install net-tools\n$ yum install nano\n<\/pre>\n<p>CentOS 8:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n$ dnf install net-tools\n$ dnf install nano\n<\/pre>\n<p>For using the PostgreSQL repository it is important to exclude PostgreSQL from the CentOS Repository.<\/p>\n<p>By using CentOS 7 you need to edit the CentOS-Base repofile to exclude PostgreSQL from Base and Updates.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ nano \/etc\/yum.repos.d\/CentOS-Base.repo\n\n# CentOS-Base.repo\n#\n# The mirror system uses the connecting IP address of the client and the\n# update status of each mirror to pick mirrors that are updated to and\n# geographically close to the client.\u00a0 You should use this for CentOS updates\n# unless you are manually picking other mirrors.\n#\n# If the mirrorlist= does not work for you, as a fall back you can try the\n# remarked out baseurl= line instead.\n#\n#\n\n[base]\nname=CentOS-$releasever - Base\nmirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&amp;arch=$basearch&amp;repo=os&amp;infra=$infra\n#baseurl=http:\/\/mirror.centos.org\/centos\/$releasever\/os\/$basearch\/\ngpgcheck=1\ngpgkey=file:\/\/\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-CentOS-7\n#exclude PostgreSQL from os repository \nexclude=postgresql* \n\n#released updates\n[updates]\nname=CentOS-$releasever - Updates\nmirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&amp;arch=$basearch&amp;repo=updates&amp;infra=$inf$\n#baseurl=http:\/\/mirror.centos.org\/centos\/$releasever\/updates\/$basearch\/\ngpgcheck=1\ngpgkey=file:\/\/\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-CentOS-7\n#exclude PostgreSQL from os repository \nexclude=postgresql*\n\n#additional packages that may be useful\n[extras]\nname=CentOS-$releasever - Extras\nmirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&amp;arch=$basearch&amp;repo=extras&amp;infra=$infra\n#baseurl=http:\/\/mirror.centos.org\/centos\/$releasever\/extras\/$basearch\/\ngpgcheck=1\ngpgkey=file:\/\/\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-CentOS-7\n\n#additional packages that extend functionality of existing packages\n[centosplus]\nname=CentOS-$releasever - Plus\nmirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&amp;arch=$basearch&amp;repo=centosplus&amp;infra=$$\n[ Read 46 lines ]\n<\/pre>\n<p>By using CentOS 8 it is just one command to exclude PostgreSQL from the distribution repository:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ dnf -y module disable postgresql\n<\/pre>\n<p>Add PostgreSQL Repository to CentOS 7, in this example it is ProstgreSQL 12<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ yum install https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-7-x86_64\/pgdg-redhat-repo-latest.noarch.rpm\n<\/pre>\n<p>And the same for CentOS 8<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ dnf install https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-8-x86_64\/pgdg-redhat-repo-latest.noarch.rpm\n<\/pre>\n<p>Now it is time to install PostgreSQL 12 out of the PostgreSQL repository BUT NO INITDB at the moment.<\/p>\n<p>CentOS 7:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ yum install postgresql12 postgresql12-server postgresql12-contrib\n<\/pre>\n<p>CentOS 8:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ dnf install postgresql12 postgresql12-server postgresql12-contrib\n<\/pre>\n<p>Now it is time to create the override file to the PostgreSQL Service file, the steps are identical on CentOS 7 and CentOS 8.<\/p>\n<p>In my example PGDATA is in \/pg_data\/12\/data mounted as own volume.<\/p>\n<p>So edit the postgresql-12.service file with sysctl edit:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ systemctl edit postgresql-12.service\n<\/pre>\n<p>And add the needed content for your customized PGDATA:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[Service]\nEnvironment=PGDATA=\/pg_data\/12\/data\n<\/pre>\n<p>Save the change, it will create a \/etc\/systemd\/system\/postgresql-12.service.d\/override.conf file which will be merged with the original service file.<\/p>\n<p>To check the content:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ cat \/etc\/systemd\/system\/postgresql-12.service.d\/override.conf\n[Service]\nEnvironment=PGDATA=\/pg_data\/12\/data\n<\/pre>\n<p>Reload Systemd<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ systemctl daemon-reload\n<\/pre>\n<p>Hopefully your PGATA is owned by the postgres user if not make sure that it is:<\/p>\n<p>$ chown -R postgres:postgres \/pg_data\/<\/p>\n<p>Create the PostgreSQL instance as root user:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ \/usr\/pgsql-12\/bin\/postgresql-12-setup initdb\nInitializing database ... OK\n<\/pre>\n<p>Here it is:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[root@centos-8-blog \/]# cd \/pg_data\/12\/data\/\n[root@centos-8-blog data]# ls\nbase\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pg_dynshmem\u00a0\u00a0\u00a0 pg_multixact\u00a0 pg_snapshots\u00a0 pg_tblspc\u00a0\u00a0\u00a0 pg_xact\nglobal\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pg_hba.conf\u00a0\u00a0\u00a0 pg_notify\u00a0\u00a0\u00a0\u00a0 pg_stat\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pg_twophase\u00a0 postgresql.auto.conf\nlog\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pg_ident.conf\u00a0 pg_replslot\u00a0\u00a0 pg_stat_tmp\u00a0\u00a0 PG_VERSION\u00a0\u00a0 postgresql.conf\npg_commit_ts\u00a0 pg_logical\u00a0\u00a0\u00a0\u00a0 pg_serial\u00a0\u00a0\u00a0\u00a0 pg_subtrans\u00a0\u00a0 pg_wal\n<\/pre>\n<p>From now on PostgreSQL minor updates will be done with yum update on CentOS 7 or dnf update on CentOS 8 in one step, no extra downtime for it.<\/p>\n<p><strong>But be careful, before running yum update or dnf update STOP ALL POSTGRESQL INSTANCES!<\/strong><\/p>\n<p>This is also working in environments with many instances, you need a service file and an override.conf for each instance, an additional instance needs to be created with initdb -D and not with PostgreSQL-12-setup initdb.<\/p>\n<p>This method is also working with SLES 12.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; overlay_strength=&#8221;0.3&#8243; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_position=&#8221;all&#8221; background_color_opacity=&#8221;1&#8243; background_hover_color_opacity=&#8221;1&#8243; column_link_target=&#8221;_self&#8221; column_shadow=&#8221;none&#8221; column_border_radius=&#8221;none&#8221; width=&#8221;1\/1&#8243; tablet_width_inherit=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221; phone_text_alignment=&#8221;default&#8221; column_border_width=&#8221;none&#8221; column_border_style=&#8221;solid&#8221; bg_image_animation=&#8221;none&#8221;][vc_column_text]In this blog I will show how to handle a PostgreSQL installation with a customized PGDATA using the packages provided by the PostgreSQL community. One issue with the packages is the hard coded [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,83],"tags":[2602],"type_dbi":[],"class_list":["post-12872","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-postgresql","tag-postgresql-2"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Handling PostgreSQL installations from packages - dbi Blog<\/title>\n<meta name=\"description\" content=\"Handling PostgreSQL Installation with Packages from PostgreSQL Repository including customized PGDATA Enviroment with override.conf for service file.\" \/>\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.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Handling PostgreSQL installations from packages\" \/>\n<meta property=\"og:description\" content=\"Handling PostgreSQL Installation with Packages from PostgreSQL Repository including customized PGDATA Enviroment with override.conf for service file.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-03T18:18:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-08T14:33:39+00:00\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\"},\"headline\":\"Handling PostgreSQL installations from packages\",\"datePublished\":\"2019-11-03T18:18:52+00:00\",\"dateModified\":\"2024-11-08T14:33:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/\"},\"wordCount\":461,\"commentCount\":0,\"keywords\":[\"postgresql\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/\",\"name\":\"Handling PostgreSQL installations from packages - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2019-11-03T18:18:52+00:00\",\"dateModified\":\"2024-11-08T14:33:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\"},\"description\":\"Handling PostgreSQL Installation with Packages from PostgreSQL Repository including customized PGDATA Enviroment with override.conf for service file.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/handling-postgresql-installation-from-packages-internal-activity\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Handling PostgreSQL installations from packages\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Handling PostgreSQL installations from packages - dbi Blog","description":"Handling PostgreSQL Installation with Packages from PostgreSQL Repository including customized PGDATA Enviroment with override.conf for service file.","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.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/","og_locale":"en_US","og_type":"article","og_title":"Handling PostgreSQL installations from packages","og_description":"Handling PostgreSQL Installation with Packages from PostgreSQL Repository including customized PGDATA Enviroment with override.conf for service file.","og_url":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/","og_site_name":"dbi Blog","article_published_time":"2019-11-03T18:18:52+00:00","article_modified_time":"2024-11-08T14:33:39+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"headline":"Handling PostgreSQL installations from packages","datePublished":"2019-11-03T18:18:52+00:00","dateModified":"2024-11-08T14:33:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/"},"wordCount":461,"commentCount":0,"keywords":["postgresql"],"articleSection":["Database Administration &amp; Monitoring","PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/","url":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/","name":"Handling PostgreSQL installations from packages - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-11-03T18:18:52+00:00","dateModified":"2024-11-08T14:33:39+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"description":"Handling PostgreSQL Installation with Packages from PostgreSQL Repository including customized PGDATA Enviroment with override.conf for service file.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/handling-postgresql-installation-from-packages-internal-activity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Handling PostgreSQL installations from packages"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12872"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12872\/revisions"}],"predecessor-version":[{"id":35672,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12872\/revisions\/35672"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12872"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}