Postgresql
由於 sql_identifier 數據類型,無法升級到 v12
我試圖在 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'