Postgresql

Google云 SQL:在導入帶有副檔名的 Postgresql 轉儲時出錯

  • July 25, 2017

我正在嘗試導入帶有副檔名的轉儲,摘自 SQL:

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
COMMENT ON EXTENSION hstore IS 'data type for storing sets of (key, value) pairs';

導入(通過 Gcloud SQL UI)失敗並顯示SET SET SET SET SET SET CREATE EXTENSION ERROR: must be owner of extension plpgsql.

這是一個可以理解的錯誤(GCloud 服務使用者沒有權限),但它沒有幫助。如果由 UI 觸發並手動設置所有權,我無法控制恢復過程,Google 雲 SQL 不允許授予角色超級使用者權限(這樣做不是處理此問題的好方法)。

在這種情況下最好的行動方案是什麼?

這麼久沒有人回應,所以我會告訴我是如何克服這個問題的。

  1. 以 postgres 使用者身份連接到您的實例,連接到 template1 數據庫並安裝所需的擴展(如果它們在支持的列表中)。
  2. 從 Cloud SQL UI 刪除並重新創建您的數據庫。也許手動也可以,但我決定不測試。UI 告訴您將使用 template1 創建新數據庫。
  3. 修改您的轉儲並註釋掉任何擴展創建。
  4. 通過 UI 導入並希望它有效。

就我而言,只有 plpgsql 和 hstore 擴展,所以沒問題。

引用自:https://serverfault.com/questions/863495