Postgresql
Google云 SQL:在導入帶有副檔名的 Postgresql 轉儲時出錯
我正在嘗試導入帶有副檔名的轉儲,摘自 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 不允許授予角色超級使用者權限(這樣做不是處理此問題的好方法)。
在這種情況下最好的行動方案是什麼?
這麼久沒有人回應,所以我會告訴我是如何克服這個問題的。
- 以 postgres 使用者身份連接到您的實例,連接到 template1 數據庫並安裝所需的擴展(如果它們在支持的列表中)。
- 從 Cloud SQL UI 刪除並重新創建您的數據庫。也許手動也可以,但我決定不測試。UI 告訴您將使用 template1 創建新數據庫。
- 修改您的轉儲並註釋掉任何擴展創建。
- 通過 UI 導入並希望它有效。
就我而言,只有 plpgsql 和 hstore 擴展,所以沒問題。