我的基本扩展代码位于位置 ->/Users/spartacus/Desktop/GSoC/CODE/my_extension
- my_extension.control
# my_extension.control
comment = 'Minimal Viable Product'
default_version = '1.0'
relocatable = true
# Installation script for version 1.0
# 1.0
# my_extension--1.0.sql
- my_extension--1.0.sql
-- my_extension--1.0.sql
-- Create necessary objects for version 1.0
CREATE TABLE my_table (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE FUNCTION my_function() RETURNS void AS $$
BEGIN
-- Function logic goes here
END;
- 生成文件
DATA = my_extension--1.0.sql
PG_CONFIG ?= pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
-- cd 命令导航到扩展文件所在的目录。连接到该位置后,执行 make 命令会抛出此错误:
make: Nothing to be done for 'all'
-- 执行make install后:
/bin/sh /opt/homebrew/lib/postgresql/pgxs/src/makefiles/../../config/install-sh -c -d '/opt/homebrew/share/postgresql/contrib'
/usr/bin/install -c -m 644 .//my_extension--1.0.sql '/opt/homebrew/share/postgresql/contrib/'
-- 运行psql;然后执行后CREATE EXTENSION my_extension;
出现这个错误:
ERROR: extension "my_extension" is not available
DETAIL: Could not open extension control file "/Applications/Postgres.app/Contents/Versions/15/share/postgresql/extension/my_extension.control": No such file or directory.
HINT: The extension must first be installed on the system where PostgreSQL is running.
如何解决这个问题?