# Multiple configurations in a container

**URL:** <https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336>\
**Category:** Issues\
**Created:** [November 14, 2019, 9:20pm UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336 "2019-11-14T21:20:55Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ianks](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/ianks/32/145_2.png) [@ianks](https://discourse.rom-rb.org/u/ianks)\
**Post date:** [November 14, 2019, 9:20pm UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/1 "2019-11-14T21:20:56Z")

</div>

Say I had two rom configurations:

```ruby
http_configuration = ROM::Configuration.new(:http, {
  uri: 'http://jsonplaceholder.typicode.com',
  headers: {
    Accept: 'application/json'
  },
  handlers: :json
})

sql_configuration = config = ROM::Configuration.new(:sql, 'postgres://localhost:5432/mydbname', opts)

```

How could I create a container that would be have access to the relations in both configs?

```ruby
ROM.container(sql: sql_configuration, http: http_configuration) # this doesn't work, just pseudo-code

```

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [December 10, 2019, 10:06am UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/2 "2019-12-10T10:06:16Z")

</div>

@ianks did you try what’s described under [Connect to multiple databases](https://rom-rb.org/5.0/learn/getting-started/setup-dsl/#connect-to-multiple-databases) section of the docs?

---

<div class="post-metadata">

**Author:** ![pmackay](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/pmackay/32/219_2.png) [@pmackay](https://discourse.rom-rb.org/u/pmackay)\
**Post date:** [April 3, 2021, 4:05pm UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/3 "2021-04-03T16:05:42Z")

</div>

I’m trying to solve the same problem outlined in this question. The [framework setup](https://rom-rb.org/learn/core/5.2/framework-setup/) docs in 5.2 only show setting up a `Configuration` object and creating a `Container` with it. Is it possible to setup a `Container` with multiple `Configuration` objects? Syntactically that’s not exactly the same as the “Connect to multiple databases” link you suggested before. A more specific example could be very useful 🙂

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [April 9, 2021, 6:14am UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/4 "2021-04-09T06:14:24Z")

</div>

> [@pmackay](#):
>
> Is it possible to setup a `Container` with multiple `Configuration` objects?

No, it’s not. I’m not sure why that’s needed?

---

<div class="post-metadata">

**Author:** ![pmackay](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/pmackay/32/219_2.png) [@pmackay](https://discourse.rom-rb.org/u/pmackay)\
**Post date:** [June 21, 2021, 7:20am UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/5 "2021-06-21T07:20:10Z")

</div>

@solnic what would be the correct approach to read from one Configuration and write to another in the same process? Particularly in the case where, e.g. one is using HTTP and another SQL?

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [June 21, 2021, 8:29am UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/6 "2021-06-21T08:29:01Z")

</div>

@pmackay wdym by “write to another”?

---

<div class="post-metadata">

**Author:** ![pmackay](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/pmackay/32/219_2.png) [@pmackay](https://discourse.rom-rb.org/u/pmackay)\
**Post date:** [June 21, 2021, 1:36pm UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/7 "2021-06-21T13:36:59Z")

</div>

@solnic I mean read from one data source and write to another data source, which could be different types of storage (HTTP, db).

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [June 23, 2021, 9:17am UTC](https://discourse.rom-rb.org/t/multiple-configurations-in-a-container/336/8 "2021-06-23T09:17:22Z")

</div>

@pmackay wait, it is possible to configure multiple gateways in a single container. Sorry but I feel like I’m missing something here. What’s the actual problem? You can pass in multiple configuration options to establish a multi-gateway container via `ROM::Configuration.new` - configuration is not _per gateway_, it’s per container. A single configuration object can set up more than one gateway. Maybe that’s the part you’ve missed?
