Docker安裝帶中文全文搜索插件zhparser的Postgresql數據庫


上一篇講了在已經安裝了PG數據庫的情況下,安裝全文搜索插件zhparser遇到的問題。在一個全新的環境中安裝帶有全文搜索插件zhparser的PG數據庫,可以使用已經做好的Docker鏡像,在安裝的過程中,我來說說我遇到過的問題,大部分問題來自postgresql鏡像。

1、拉取zhparser的鏡像

基本運行命令:

docker run -p 5432:5432 chenxinaz/zhparser

在docker hub中zhparser項目的地址,https://hub.docker.com/r/chenxinaz/zhparser,這個鏡像基於postgresql的鏡像來做的,包含postgresql的數據庫,不用額外安裝postgresql數據庫。上面的運行命令測試還可以,不建議正式使用。

2、初始化插件

在指定數據庫初始化插件,運行下面SQL:

CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION chinese_zh (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple;

測試插件是否安裝成功SQL:

select ts_debug('chinese_zh', '白堊紀是地球上海陸分布和生物界急劇變化、火山活動頻繁的時代');

3、關於postgresql鏡像的高級參數

zhparser的可用環境參數大部分來自postgresql鏡像,可以直接查看postgresql進行的環境參數。在初始化容器的時候,不設定容器參數,之后改起來就很麻煩。

3.1、指定數據庫用戶和密碼

docker run -d --name pg -e POSTGRES_PASSWORD=password  chenxinaz/zhparser

能指定的環境參數:

  • POSTGRES_PASSWORD
  • POSTGRES_USER
  • POSTGRES_DB
  • POSTGRES_INITDB_ARGS
  • POSTGRES_INITDB_WALDIR
  • PGDATA

3.2、推薦一組比較好用的命令

這組命令能掛載配置目錄,掛載數據庫目錄,掛載初始化目錄,用於數據庫的初始化。

#復制一個配置文件的副本到本地目錄
$ docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf

# 指定配置文件的位置
$ docker run -d \
-p 15432:5432  \
-e POSTGRES_PASSWORD=password \
-v "$本地配置文件位置/postgres.conf":/etc/postgresql/postgresql.conf \
-v "$本地數據文件位置/data":/var/lib/postgresql/data \
-v "$初始化腳本位置/docker-entrypoint-initdb.d":/docker-entrypoint-initdb.d \
--name=pg \
chenxinaz/zhparser \
-c 'config_file=/etc/postgresql/postgresql.conf'

其中"$初始化腳本位置"中能用的腳本,可以是sql文件、壓縮文件、可執行文件。例如:

#!/usr/bin/env bash

# Import SQL
echo -n "=======IMPORT SQL DATA======="
createdb -U postgres test

psql -U postgres test < /docker-entrypoint-initdb.d/test.sql
echo "=======IMPORT SQL DONE======="

其他參考官方項目文檔:https://hub.docker.com/_/postgres。

4、常用備份

4.1、導出數據庫:

docker exec -it pg pg_dump -h localhost -U postgres 數據庫名 >/data/dum.sql

4.2、導入數據庫:

docker exec -i pg psql -U postgres 數據庫名 < /data/dum.sql


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM