Self-use postgres docker image with following changes
- postgresql-contrib
with pg_stat_statements enable
- zhparser
full-text search of Chinese
- pg-safeupdate
require SQL Where Clause in update/delete
- pg_cron
run cron job
- postgis
postgis
default_text_search_config
set to'chinese'
to use zhparserpg_stat_statements
,safeupdate
load by defaultmax_replication_slots
ifUSE_REPLICATION
env is set
more in this file
# amd64
docker build -t postgres-12-zhparser-postgis:latest -f ./Dockerfile .
docker save -o postgres-12-zhparser-postgis postgres-13-zhparser-postgis:latest
docker load -i postgres-12-zhparser-postgis
# arm64
docker build -t postgres-12-zhparser-postgis-arm:latest -f ./DockerfileArm64 .
docker save -o postgres-12-zhparser-postgis-arm postgres-13-zhparser-postgis-arm:latest
docker load -i postgres-12-zhparser-postgis-arm
docker run --name postgres-12 -e POSTGRES_PASSWORD=<PASSWORD> -p <PORT>:5432 -d postgres-13-zhparser-postgis:latest
psql -d <database>
SELECT to_tsvector('chinese', '人生苦短,乘早摸鱼,Good Morning~');
to_tsvector
--------------------------------------------------------
'good':8 'morning':9 '乘':4 '人生':1 '摸':6 '早':5 '短':3 '苦':2 '鱼':7
-- add custom dict
insert into zhprs_custom_word values ('摸鱼');
insert into zhprs_custom_word values ('荒天帝');
insert into zhprs_custom_word values ('独断万古');
insert into zhprs_custom_word values ('人生苦短');
-- make effect
select sync_zhprs_custom_word();
-- test
SELECT * FROM ts_parse('zhparser', '人生苦短,爆炸吧,小宇宙,独断万古荒天帝,摸鱼ing,Good Morning~');
SELECT to_tsquery('chinese', '荒天帝石昊');
SELECT to_tsvector('chinese', '人生苦短,爆炸吧,小宇宙,独断万古荒天帝,摸鱼ing,Good Morning~');
docker exec -it postgres-12 pg_dump -Upostgres > backup.sql