torodb 可以方便的让你迁移到pg,同时使用标准原生的sql 查询
使用官方的docker-compose 进行测试
环境准备
- docker-compose 文件
wget https://raw.githubusercontent.com/torodb/stampede/master/main/src/main/dist/docker/compose/torodb-stampede-fullstack/docker-compose.yml
里面已经包含了pg mongodb torodb
- 内容
version: '2'
services:
torodb-stampede:
image: torodb/stampede
links:
- postgres
- mongodb
environment:
- POSTGRES_PASSWORD
- TORODB_SETUP=true
- TORODB_SYNC_SOURCE=mongodb:27017
- TORODB_BACKEND_HOST=postgres
- TORODB_BACKEND_PORT=5432
- TORODB_BACKEND_DATABASE
- TORODB_BACKEND_USER
- TORODB_BACKEND_PASSWORD
- DEBUG
postgres:
image: postgres:9.6
environment:
- POSTGRES_PASSWORD
ports:
- "15432:5432"
mongodb:
image: mongo:3.2
ports:
- "28017:27017"
entrypoint:
- /bin/bash
- "-c"
- mongo --nodb --eval '
var db;
while (!db) {
try {
db = new Mongo("mongodb:27017").getDB("local");
} catch(ex) {}
sleep(3000);
};
rs.initiate({_id:"rs1",members:[{_id:0,host:"mongodb:27017"}]});
' 1>/dev/null 2>&1 &
mongod --replSet rs1
- 启动
docker-compose up -d
测试使用
- 添加数据
可以mongodb 使用工具,创建库,以及添加数据
- 效果
说明
使用起来还是比较方便的,同时组件本身可以进行数据同步的保证,比如组件服务停止了,它可以保证运行之后数据依然是可以进行同步的,
如果和graphql 集成起来就更放方便了,直接就实现了mongodb- grphql api 的转换,很不错的开源工具.
注意目前看到的是对于嵌套对象的处理,是通过多变关联处理的。
参考资料
https://www.torodb.com/stampede/docs/1.0.0/installation/docker/
https://www.torodb.com/