{"id":7672,"date":"2018-11-13T07:30:09","date_gmt":"2018-11-13T10:30:09","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=7672"},"modified":"2020-06-17T19:10:06","modified_gmt":"2020-06-17T22:10:06","slug":"mover-o-postgis-de-esquema","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2018\/11\/13\/mover-o-postgis-de-esquema\/","title":{"rendered":"Mover o PostGIS de esquema"},"content":{"rendered":"<p>A partir do PostGIS 2.3, a extens\u00e3o do postgis foi alterada para n\u00e3o permitir mais a realoca\u00e7\u00e3o. Todas as chamadas de fun\u00e7\u00e3o agora s\u00e3o qualificadas pelo esquema.<\/p>\n<p>Embora essa altera\u00e7\u00e3o tenha corrigido alguns problemas com a restaura\u00e7\u00e3o do banco de dados, ela criou um problema, pois se voc\u00ea instalou o PostGIS em um esquema diferente daquele que voc\u00ea desejava, n\u00e3o \u00e9 intuitivo como mov\u00ea-lo para um esquema diferente. Felizmente h\u00e1 uma maneira de fazer isso.<\/p>\n<p>Para este exemplo, o PostGIS foi instalado no esquema padr\u00e3o para demonstrar como mov\u00ea-lo para outro esquema. Voc\u00ea pode executar estas etapas usando o psql, pgAdmin ou qualquer outra ferramenta desejada.<\/p>\n<p>A maioria das pessoas tem seu esquema padr\u00e3o configurado como public, caso voc\u00ea n\u00e3o especifique explicitamente um esquema na instala\u00e7\u00e3o, geralmente o PostGIS ser\u00e1 instalado no esquema public.<\/p>\n<pre>\r\nCREATE EXTENSION postgis;\r\n<\/pre>\n<p>Agora vou criar um novo esquema para mov\u00ea-lo e adicionar este esquema ao search_path:<\/p>\n<pre>\r\nCREATE SCHEMA postgis;\r\n \r\nALTER DATABASE mydb \r\nSET search_path = public, postgis;\r\n<\/pre>\n<p>Se voc\u00ea estiver executando o PostGIS 2.3 ou superior, tente mudar para um esquema diferente usando o comando abaixo:<\/p>\n<pre>\r\nALTER EXTENSION postgis \r\n  SET SCHEMA postgis;\r\n<\/pre>\n<p>Isso ir\u00e1 falhar e o banco ir\u00e1 lhe apresentar o seguinte erro <strong>&#8220;ERRO: a extens\u00e3o \u201cpostgis\u201d n\u00e3o suporta SET SCHEMA&#8221;<\/strong>.<\/p>\n<p>Para permitir o movimento, siga estes passos:<\/p>\n<pre>\r\nUPDATE pg_extension \r\n  SET extrelocatable = TRUE \r\n    WHERE extname = 'postgis';\r\n \r\nALTER EXTENSION postgis \r\n  SET SCHEMA postgis;\r\n \r\nALTER EXTENSION postgis \r\n  UPDATE TO \"2.4.1next\";\r\n \r\nALTER EXTENSION postgis \r\n  UPDATE TO \"2.4.1\";\r\n<\/pre>\n<p>Observe o uso da express\u00e3o next. \u00c9 necess\u00e1rio utilizar a express\u00e3o next nesta etapa para atualizar todas as refer\u00eancias das fun\u00e7\u00f5es do esquema atual para o novo do esquema. Next \u00e9 projetado para permitir a atualiza\u00e7\u00e3o de uma extens\u00e3o do postgis para uma vers\u00e3o j\u00e1 existente. Tentar executar UPDATE TO \u201c2.4.1\u201d quando voc\u00ea j\u00e1 est\u00e1 no 2.4.1 acionaria um erro, pois voc\u00ea j\u00e1 est\u00e1 nessa vers\u00e3o.<\/p>\n<p>Fonte: <a href=\"https:\/\/postgis.net\/2017\/11\/07\/tip-move-postgis-schema\/\" rel=\"noopener noreferrer\" target=\"_blank\">PostGIS<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A partir do PostGIS 2.3, a extens\u00e3o do postgis foi alterada para n\u00e3o permitir mais a realoca\u00e7\u00e3o. Todas as chamadas de fun\u00e7\u00e3o agora s\u00e3o qualificadas pelo esquema. Embora essa altera\u00e7\u00e3o tenha corrigido alguns problemas com a restaura\u00e7\u00e3o do banco de&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2018\/11\/13\/mover-o-postgis-de-esquema\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":7673,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[212],"class_list":["post-7672","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-postgis"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=7672"}],"version-history":[{"count":6,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7672\/revisions"}],"predecessor-version":[{"id":8858,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7672\/revisions\/8858"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/7673"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=7672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=7672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=7672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}