ThreeDotsLabs / watermill

Building event-driven applications the easy way in Go.
https://watermill.io
MIT License
6.87k stars 365 forks source link

PGX Subscriber InvalidIfaceAssign #408

Open TeddyLourson opened 7 months ago

TeddyLourson commented 7 months ago

I'm getting an error when trying to create an SQL subscriber with pgx. I can't find any example of a Postgres subscriber so I've followed the simple MySQL forwarder example to no success.

Here's the code :

func InitSQLSubscriber(db *pgxpool.Pool, logger watermill.LoggerAdapter) (*sql.Subscriber, error) {
    sqlSubscriber, err := sql.NewSubscriber(
        db,
        sql.SubscriberConfig{
            SchemaAdapter:    sql.DefaultPostgreSQLSchema{},
            OffsetsAdapter:   sql.DefaultPostgreSQLOffsetsAdapter{},
            InitializeSchema: true,
        },
        logger,
    )
    if err != nil {
        return nil, fmt.Errorf("could not create subscriber: %s", err)
    }
    return sqlSubscriber, nil
}

The error :

cannot use db (variable of type pgxpool.Pool) as "github.com/ThreeDotsLabs/watermill-sql/v2/pkg/sql".Beginner value in argument to sql.NewSubscriber: pgxpool.Pool does not implement "github.com/ThreeDotsLabs/watermill-sql/v2/pkg/sql".Beginner (wrong type for method BeginTx) have BeginTx(context.Context, pgx.TxOptions) (pgx.Tx, error) want BeginTx(context.Context, "database/sql".TxOptions) ("database/sql".Tx, error)compilerInvalidIfaceAssign

amansx commented 3 months ago

Any response to this?