首页
学习
活动
专区
工具
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,可能需要进行大量的自定义开发工作,这并不推荐除非你有足够的资源和时间。

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

相关·内容

  • 【洞见荐书】| 《深度实践微服务测试》(文末赠书)

    距离我上一次写契约测试的文章已经过去了三年,在这期间,契约测试在测试策略层面已经确确实实地被很多团队落地实践,无论是对工具的熟练层度、还是对引入契约测试的主观意愿,越来越多的团队在契约测试上都展现出了更高的使用水准,甚喜。 最近,我接触到了两个不同项目的一些事情,它们都对契约测试有所涉及,但又都包含了一些很容易让人迷失的细节,所以想和大家一起分享。 生产者端的契约测试不是“写”出来的 在一次帮助项目上的开发同学评审契约测试代码的时候,我留意到开发同学多次描述“……在生产者端的实现是这么写的……” ,我顿时感

    02

    关于MQ面试的几件小事 | 消息积压在消息队列里怎么办

    场景:几千万条数据在MQ里积压了七八个小时,从下午4点多,积压到了晚上很晚,10点多,11点多。线上故障了,这个时候要不然就是修复consumer的问题,让他恢复消费速度,然后傻傻的等待几个小时消费完毕。这个肯定不行。一个消费者一秒是1000条,一秒3个消费者是3000条,一分钟是18万条,1000多万条。 所以如果你积压了几百万到上千万的数据,即使消费者恢复了,也需要大概1小时的时间才能恢复过来。 解决方案: 这种时候只能操作临时扩容,以更快的速度去消费数据了。具体操作步骤和思路如下: ①先修复consumer的问题,确保其恢复消费速度,然后将现有consumer都停掉。

    03

    一日一知:自学爬虫的求职建议

    前几天有一位知识星球中的同学讲了他目前的状况,希望咨询一些未来发展的问题,感觉应该和许多想要去好一点大公司的求职者有一些共性建议:这位同学目前是专升本,专科大三下半年在小公司实习过,从专科大三实习到去年9月入学现在的本科学校,期间一直在兼职接单,做过很多项目,自己也有一直在学习,但是学习的很散(基础的东西很薄弱、知识体系很散东一点、西一点),目前希望能够去一个好点的大公司。对大项目架构、设计模式什么的一窍不通。app 大多数JAVA层的都能解决,so层算法还原不行,只能frida-rpc,web 可以解决少部分加密,风控解决不了只会普通的用iP去怼。

    02
    领券