首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法在mongodb中运行pact-broker

Pact Broker 是一个用于存储和管理 Pact 合约的工具,通常使用 PostgreSQL 作为其数据库。然而,如果你希望在 MongoDB 中运行 Pact Broker,目前官方并不直接支持 MongoDB 作为其数据库后端。

Pact Broker 是用 Ruby on Rails 构建的,并且依赖于 ActiveRecord 作为其 ORM(对象关系映射)工具。ActiveRecord 主要支持关系型数据库(如 PostgreSQL、MySQL、SQLite),而不支持文档型数据库(如 MongoDB)。

可能的解决方案

尽管官方不支持 MongoDB,但你有以下几种选择:

  1. 使用官方支持的数据库
    • 最简单和推荐的方法是使用官方支持的 PostgreSQL 数据库。你可以在本地或通过云服务(如 AWS RDS、Heroku Postgres)来运行 PostgreSQL。
  2. 使用 Docker
    • 使用官方提供的 Docker 镜像来运行 Pact Broker 和 PostgreSQL。这样可以简化部署和管理。
  3. 自定义实现
    • 如果你有足够的开发资源和时间,可以尝试修改 Pact Broker 的源码,使其支持 MongoDB。这将涉及到替换 ActiveRecord 并使用一个支持 MongoDB 的 ORM(如 Mongoid)。但这是一项复杂且耗时的任务,不推荐除非你有非常强的需求。

使用官方支持的数据库(PostgreSQL)

以下是如何使用 Docker 来运行 Pact Broker 和 PostgreSQL 的步骤:

  1. 创建 Docker Compose 文件: 创建一个 docker-compose.yml 文件,内容如下:

version: '3' services: postgres: image: postgres:12 environment: POSTGRES_USER: pactbroker POSTGRES_PASSWORD: password POSTGRES_DB: pactbroker ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data pact-broker: image: pactfoundation/pact-broker environment: PACT_BROKER_DATABASE_USERNAME: pactbroker PACT_BROKER_DATABASE_PASSWORD: password PACT_BROKER_DATABASE_HOST: postgres PACT_BROKER_DATABASE_NAME: pactbroker ports: - "9292:9292" depends_on: - postgres volumes: postgres_data:

  • 启动服务: 在终端中运行以下命令启动服务:
  1. docker-compose up 这将启动 PostgreSQL 和 Pact Broker,并将 Pact Broker 绑定到本地的 9292 端口。
  2. 访问 Pact Broker: 打开浏览器并访问 http://localhost:9292,你应该能够看到 Pact Broker 的界面。

总结

虽然 Pact Broker 官方不支持 MongoDB,但你可以使用官方支持的 PostgreSQL 数据库来运行 Pact Broker。使用 Docker 和 Docker Compose 可以简化部署和管理过程。如果你有强烈的需求使用 MongoDB,可能需要进行大量的自定义开发工作,这并不推荐除非你有足够的资源和时间。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MongoDB 数组mongodb 存在的意义

MOGNODB 的文档设计和存储,存在两个部分 1 嵌套 2 数组,所以如果想设计好一个MONGODB 在理解业务,读写比例,查询方式后,就需要介入到更深层次的理解嵌套的查询方式,嵌套多层后的性能问题...MONGODB 的数组是属于同类型数据的元素集合,每个数组的元素代表这个数组同样属性的不同值,其实我们可以理解为,一个JSON ,有行和行列集合的存在,本身JSON可以通过数组的方式,一个平面里面表达一个列的集合...数组一部分应用设计适合进行数据查询,而另外一点就是数组的缺点,就是对数组的数据进行更新,尤其是高频次,大量的数据更新和数据的添加。 下面就是针对ORACLE 添加在数组添加一个数据元素。...将刚才的加入的数组元素进行修改db.databases.update({system_name:"oracle"},{$set:{"score.4":50}}) 另外对于数组的另外一个功能,就是将一些设计的行转换...数组MONGODB 存在的意义很大,很多设计中都可以通过数组的使用降低查询的复杂度和降低建立索引的SIZE。

4.2K20

Docker安装MongoDB

镜像文件 等待镜像拉取完成后,通过命令"sudo docker images"查看下拉取的镜像,可以看到,已经成功拉取到了本地 3.开始运行 创建一个文件夹,用作mongodb的数据目录挂载 运行启动命令...“docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo” 在上面的命令,几个命令参数的详细解释如下: -p...外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务 -v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器的/data/db,作为 mongodb 的存储目录...创建完用户我们就要重新启动mongo服务,并且指定auth 删除已经运行的mongo容器:docker rm -f mongodb 指定验证启动mongo容器:docker run -p 27017:...27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth 也就是之前的启动命令后面加上 --auth:需要密码才能访问容器服务 此时强行访问

7.3K11
  • Kubernetes上运行MongoDB的5个理由

    对于寻求满足可扩展性、可靠性和性能需求的企业来说, Kubernetes 上运行 MongoDB 是一个明智的选择。这两种技术的集成解决了企业管理大规模动态环境时面临的一些最关键的挑战。...让我们探讨 Kubernetes 上运行 MongoDB 作为企业为未来优化其数据基础设施的推荐策略的五大理由。...此外,通过 Kubernetes 有效地管理集群的资源,您的 MongoDB 占用空间可以有效运行,并且没有性能或可用性问题,但资源占用空间却小得多。... Kubernetes 上运行 MongoDB 允许您利用此生态系统,从而更轻松地构建、部署和维护强大的应用程序。...此外,Kubernetes 对容器化环境的支持确保了您的 MongoDB 实例隔离的可重复环境运行

    12210

    Wiredtiger MONGODB 的疑问

    MongoDB 也有类似MYSQL 的数据库引擎的插件化的概念,虽然MYSQL 被ORACLE 搞得现在对这个数据库的引擎认知都存在于INNODB,但实际上MYSQL 之前的存储引擎还是丰富多彩的,...实际上MONGODB ,快速的返回结果其实cursors的功劳不小,首先不要用传统的数据库思维来去想MONGODB,他返回的数据结果集,要比传统的数据结果集大的多,(言外之意就是MONGODB 处理的数据量...,删除操作应该好好考虑如何处理。...2 作为WIREDTIGER 的两个日志系统,Journal and oplog ,系统他们的负责的任务是不同的,(如不清楚 Journal & oplog 是什么请百度),那么这里有一个问题,Journal...这也是由于两者在对MONGODB 数据库功能上的主责不同。一个是负责系统crash后的恢复,自然以结果为ORDER ,而OPLOG 则是要对 REPL负责,所以操作的顺序是ORDER。

    1.8K20

    kubernetes运行openebs

    它属于Cloud Native Computing Foundation沙箱,各种情况下都非常有用,例如在公共云中运行的群集, 隔离环境运行的无间隙群集以及本地群集。 什么是CAS?...大多数情况下,存储通常以OS内核模块的形式与节点相关。这也适用于永久卷,永久卷, 它们与模块紧密耦合,因此显示为旧版资源和整体式。...请按照以下步骤Linux平台(Ubuntu)启动该过程。...然后您要做的就是cStor池中部署ENV设置以cStor池pod启用转储核心,并将ENV设置放入ndm守护程序规范daemonset pod核心转储。...openebs-ndm引用守护程序集,该守护程序集应在集群的所有节点上运行,或者至少nodeSelector配置期间选择的节点上运行

    4.8K21

    Kubernetes 运行 Kubernetes

    既然 Docker 容器可以运行 Kubernetes 集群,那么我们自然就会想到是否可以 Pod 运行呢? Pod 运行会遇到哪些问题呢? ?... Pod 安装 Docker Daemon KinD 现在是依赖与 Docker 的,所以首先我们需要创建一个允许我们 Pod 运行 Docker Deamon 的镜像,这样我们就可以 Pod...PID 1 的问题 比如我们需要在一个容器中去运行 Docker Daemon 以及一些 Kubernetes 的集群测试,而这些测试依赖于 KinD 和 Docker Damon,一个容器运行多个服务我们可能会去使用...sleep 1 done exec "$@" 但是需要注意的是我们不能将上面的脚本作为容器的 entrypoint,镜像定义的 entrypoint 会在容器以 PID 1 的形式运行在一个单独的...Pod 运行 KinD 上面我们成功配置了 Docker-in-Docker(DinD),接下来我们就来该容器中使用 KinD 启动 Kubernetes 集群。

    2.8K20

    MongoDB 评论台的实践

    集群模式下,collection按照 片键(shard key)拆分成多个区间,每个区间组成一个chunk,按照规则分布不同的shard。并形成元数据注册到config服务管理。...3.3.2 片键的选择 MongoDB集群,一个集合的数据部署是分散多个shard分片和chunk的,而我们希望一个评论列表的查询最好只访问到一个shard分片,因此确定了 范围分片 的方式。...随着性能测试的介入,我们发现了有两个非常致命的问题: jumbo chunk问题 唯一键问题 jumbo chunk: 官方文档MongoDB的chunk大小被限制了1M-1024M。...,同样会导致集群可用性降低,因此只能在业务低峰进行 四、写在最后 MongoDB集群评论台项目中已上线运行了一年多,过程完成了约10个业务方接入,承载了1亿+评论回复数据的存储,表现较为稳定。...因此一般业务使用MongoDB时,副本集方式就能支撑TB级别的存储和查询,并非一定需要使用集群化方式。 以上内容基于MongoDB 4.0.9版本特性,和最新版本的MongoDB细节上略有差异。

    1.9K30

    使用insert () MongoDB插入数组

    “insert”命令也可以一次将多个文档插入到集合。下面我们操作如何一次插入多个文档。...结果显示这3个文档已添加到集合。 以JSON格式打印 JSON是一种称为JavaScript Object Notation的格式,是一种规律存储信息,易于阅读的格式。...如下的例子,我们将使用JSON格式查看输出。 让我们看一个以JSON格式打印的示例 db.Employee.find()。...这样做是为了确保明确浏览集合的每个文档。这样,您就可以更好地控制集合每个文档的处理方式。 第二个更改是将printjson命令放入forEach语句。这将导致集合的每个文档以JSON格式显示。...译者:徐杨 MongoDB中文社区翻译志愿者,资深程序员。

    7.6K20

    windows:双击运行Python

    windows:双击运行Python程序、后台运行Python程序 一、安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退。怎样避免闪退呢?...1、bat启动 start_show.bat  1 python main.py 2、升级版:vbs后台运行(×××面) start_hidden.vbs  12 Set ws = CreateObject...("Wscript.Shell")ws.run "cmd /c start_show.bat",0 二、windows怎么快捷杀掉Python程序?...答:bat杀 stop_all_python.bat  1 taskkill /IM python.exe /F 附录: main.py 123456789101112131415161718192021222324252627282930313233343536...2、不带界面后台运行程序 双击start_hidden.vbs 进程会增加一个python.exe进程,增加的python.exe进程为后台启动的,可以通过日志查看 ? ?

    4.5K10

    docker运行mysql实例

    可以docker hub上注册个账号,构建自己的镜像放到hub上,以便复用 年前给公司的同事培训过一次学习mysql,阿里云服务器上使用docker给每个同事都搭建了一个msyql运行环境,差点没跑起来...补充些docker基础概念知识 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。...容器是完全使用沙箱机制,相互之间不会有任何接口 镜像(Image) 镜像,从认识上简单的来说,就是面向对象的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。...镜像不包含任何动态数据,其内容构建之后也不会被改变。 容器(Container) 容器,从认识上来说,就是类创建的实例,就是依据镜像这个模板创建出来的实体。...容器内的进程是运行在一个隔离的环境里,使用起来,就好像是一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

    3.7K30

    docker运行mysql实例

    可以docker hub上注册个账号,构建自己的镜像放到hub上,以便复用 docker hub地址 我的地址 慕课网学习地址 年前给公司的同事培训过一次学习mysql,阿里云服务器上使用docker...补充些docker基础概念知识 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。...容器是完全使用沙箱机制,相互之间不会有任何接口 镜像(Image) 镜像,从认识上简单的来说,就是面向对象的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。...镜像不包含任何动态数据,其内容构建之后也不会被改变。 容器(Container) 容器,从认识上来说,就是类创建的实例,就是依据镜像这个模板创建出来的实体。...容器内的进程是运行在一个隔离的环境里,使用起来,就好像是一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

    3.9K10

    .NET Core 运行 JavaScript

    一.前言 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET...Core 运行 JavaScript 呢,答案是使用 NodeServices。...关于为何有 .NET Core 执行 JavaScript 这种需求,比较特殊,举个栗子:当你做模拟登录时,目标网站可能采用一些加密算法来计算特殊的值,如果你要完全模拟,那么除了用C#翻译这个算法还有个办法就是直接将这段加密算法...二.什么是 NodeServices NodeServices 是一个 ASP.NET Core 中间件,将它添加到 ASP.NET Core 管道,该中间件调用Node在运行时执行JavaScript.../scripts/greeter", "晓晨"); return greetingMessage; } } 运行测试: ?

    3.9K20
    领券