2

I'm trying to connect to two different databases (both with reactive connection), but I'm not able to create a connection pool for the second database and continue using Panache.

I tried to use the @ReactiveDataSource annotation as it is in the Quarkus documentation, but I can't set this connection for some entities to perform the operations via Panache for this specific pool.

Example (Something like this):

application.properties

quarkus.datasource.db-kind=postgresql 
quarkus.datasource.username=user-default
quarkus.datasource.password=password-default
quarkus.datasource.reactive.url=postgresql://localhost:5432/default

quarkus.datasource."additional1".db-kind=postgresql 
quarkus.datasource."additional1".username=user-additional1
quarkus.datasource."additional1".password=password-additional1
quarkus.datasource."additional1".reactive.url=postgresql://localhost:5432/additional1

User entity

public class User extends PanacheEntity {
    private String name;
}

UserRepository (This is where the Panache configuration for a specific datasource should occur!!)

@ApplicationScoped
public class UserRepository {
    @Inject
    @ReactiveDataSource("additional1")
    PgPool additional1Client;

    public Uni<User> findUserById(int id) {
          // set the _additional1Client_ pool in the Panache to make User.findById(id)........
    }
}

Thanks in advance for any help.

Leonardo Freua
  • 123
  • 1
  • 1
  • 7
  • Can you share the list of extension you are using? Do you use Hibernate reactive with Panache and not Hibernate ORM with Panache as the later will not work with reactive datasource. – loicmathieu Jun 10 '21 at 08:48

2 Answers2

4

According to the guides, it is not currently possible to create multiple reactive datasources.

Also, looking forward this feature, but it will be supported only for future Hibernate ORM 6 according to a Quarkus member comment.

1

I was checking the guides ant the look exactly what you did. But when i was using name source, I didn't use the ", so try to remove them, might work then. Therfore do:

quarkus.datasource.additional1.db-kind=postgresql 

As described in this artikel: https://quarkus.io/guides/datasource#multiple-datasources

jzimmerli
  • 141
  • 3