Skip to content

ALTER EXTENSION ERROR : extension "my_extension" has no update path from version "1.0.0" to version "1.0.1" #22

@IshaanAdarsh

Description

@IshaanAdarsh

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' to default_version = '1.0.1'
  • Changed the Makefile DATA variable to new SQL file:
    • DATA = my_extension--1.0.0.sql to DATA = 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)
    $$
;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions