Механизм релокации расширений в PostgreSQL позволяет перемещать расширения в другие схемы. 12
Есть несколько уровней перемещаемости расширений: 2
- Полностью перемещаемое. 2 Такое расширение можно переместить в другую схему в любое время, даже после загрузки в базу данных. 2 Для этого используется команда ALTER EXTENSION SET SCHEMA, которая автоматически переименовывает все объекты расширения в новую схему. 12 Обычно такое возможно, если расширение не содержит внутренних указаний на конкретную схему, внутри которой должны быть размещены его объекты. 12
- Перемещаемое во время установки, но не после неё. 12 Обычно такая ситуация возникает, если в файле скрипта расширения явно указана схема, в которую загружается расширение, например установкой search_path в функциях SQL. 12 Для таких расширений в их управляющем файле устанавливают relocatable = false и используют @extschema@, чтобы указать в файле скрипта схему, в которую загружается расширение. 12
- Неперемещаемое. 12 Такое расширение загружается в схему с конкретным именем и ни в какие другие. 1
По умолчанию расширение не перемещаемое (relocatable = false). 1 Чтобы пометить полностью перемещаемое расширение, в его управляющем файле устанавливают relocatable = true. 12