Trying to implement ALTER EXTENSION
on custom extension my_extension
.
Made the following changes:
- Created a new file
my_extension--1.0.1.sql
- I changed the code of the control file:
default_version = '1.0.0'
todefault_version = '1.0.1'
- Changed the Makefile DATA variable to new SQL file:
DATA = my_extension--1.0.0.sql
toDATA = my_extension--1.0.1.sql
After running ALTER EXTENSION my_extension UPDATE TO '1.1.0';
ERROR: extension "my_extension" has no update path from version "1.0.0" to version "1.0.1"
What should I change to fix this?
Code for different files:
Makefile:
EXTENSION = my_extension
DATA = my_extension--1.0.1.sql
REGRESS = my_extension--regress
PG_CONFIG ?= pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
Control File:
EXTENSION = my_extension
DATA = my_extension--1.0.1.sql
REGRESS = my_extension--regress
PG_CONFIG ?= pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
SQL File my_extension--1.0.1.sql
:
-- Update path script for version 1.0.1
-- Create necessary objects (version 1.0.0)
CREATE TABLE my_table (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
-- Add 2 numbers using add function (version 1.0.0)
CREATE FUNCTION add(a integer, b integer) RETURNS integer
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT
RETURN a + b;
-- This is the new function added in version 1.0.1
CREATE FUNCTION complex_add(integer[]) RETURNS integer
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT
AS $$
SELECT COALESCE(SUM(val), 0)
FROM unnest($1) AS t(val)
$$
;