Postgresql

由於 sql_identifier 數據類型,無法升級到 v12

  • July 26, 2020

我試圖在 AWS RDS 實例上將 Postgres 11.8 升級到 12.3。升級失敗並出現以下錯誤:

您的安裝在使用者表和/或索引中包含“sql_identifier”數據類型。此數據類型的磁碟格式已更改,因此目前無法升級此集群。您可以刪除問題表或將數據類型更改為“名稱”並重新啟動升級。問題列的列表在文件中:tables_using_sql_identifier.txt

我無權訪問此文件。我相信它不適用於 AWS 使用者。我可以找到具有以下內容的 sql_identifier 列:

SELECT 
atttypid::regtype, *
FROM   pg_attribute
WHERE  attrelid = 'information_schema.columns'::regclass
ORDER  BY attnum

我可以將所有列更新為“名稱”類型,但更改information_schema表似乎很激進,我在網際網路上的任何地方都找不到有關此錯誤的任何資訊。任何想法表示讚賞。

您需要在 information_schema 之外找到具有該類型的列。Information_schema 不是使用者表,它們是系統表。

SELECT * 
FROM pg_attribute 
 join pg_class on attrelid=oid 
 join pg_namespace on relnamespace=pg_namespace.oid 
WHERE atttypid::regtype::text like '%sql_identifier' 
 and nspname!='information_schema'

引用自:https://dba.stackexchange.com/questions/271672