УПРАВЛЕНИЕ РАСШИРЕНИЯМИ ~~~~~~~~~~~~~~~~~~~~~~~ Создаем БД db24 => create database db24; CREATE DATABASE => \c db24 You are now connected to database "db24" as user "postgres". 1. Установить в БД db24 расширение uom версии 1.1 Проверим доступные к установке версии расширения => select name, version, installed from pg_available_extension_versions => where name = 'uom'; name | version | installed ------+---------+----------- uom | 1.0 | f uom | 1.2 | f uom | 1.1 | f (3 rows) Установим версию 1.1: => create extension uom version '1.1'; CREATE EXTENSION 2. Добавить футы и дюймы в таблицу. Проверить сколько дюймов в одном аршине. => INSERT INTO uom VALUES ('фут', 0.3048, false); INSERT 0 1 => INSERT INTO uom VALUES ('дюйм', 0.0254, false); INSERT 0 1 => select uom2uom (1, 'аршин', 'дюйм'); uom2uom --------------------- 28.0000000000000000 (1 row) 3. Обновить расширение uom до версии 1.2. Проверим содержимое скрипта обновления uom--1.1--1.2.sql postgres> cat /usr/local/pgsql/share/extension/uom--1.1--1.2.sql \echo Use "ALTER EXTENSION uom UPDATE TO '1.2'" to load this file. \quit -- Изменения версии 1.2 select pg_extension_config_dump ('uom'::regclass, 'WHERE NOT (predefined)'); Выполним обновление => alter extension uom update to '1.2'; ALTER EXTENSION 4. Проверить, что pg_dump выгружает из таблицы футы и дюймы. Проверим, что в pg_extension записана информация о том, какие строки из таблицы uom выгружать => select extname, extconfig, extcondition from pg_extension => where extname = 'uom'; extname | extconfig | extcondition ---------+-----------+---------------------------- uom | {160362} | {"WHERE NOT (predefined)"} (1 row) Проверим, что pg_dump их действительно выгружает: pg_dump -d db24| sed -n '/^COPY uom/,/^\./p' COPY uom FROM stdin; фут 0.3048 f дюйм 0.0254 f \. => \q