Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Achieve full compatibility with FerretDB #477

Open
ujibang opened this issue Aug 2, 2023 · 5 comments
Open

Achieve full compatibility with FerretDB #477

ujibang opened this issue Aug 2, 2023 · 5 comments
Assignees
Milestone

Comments

@ujibang
Copy link
Contributor

ujibang commented Aug 2, 2023

Brief overview

FerretDB is the truly Open Source MongoDB alternative, built on Postgres.

We are working with the FerretDB team to make RESTHeart and FerretDB work together.

Rationale

Extend support to other DBs

Detailed documentation

TBD

@ujibang ujibang added this to the 8.0 milestone Aug 2, 2023
@ujibang ujibang self-assigned this Aug 2, 2023
@b1ron
Copy link

b1ron commented Nov 7, 2023

We added your integration tests to our CI see a failed run here. I will parse through the output and create issues and link them to our config files.

@AlekSi
Copy link

AlekSi commented Nov 23, 2023

We noticed that restheart-core tests currently fail when run against MongoDB: https://github.com/FerretDB/dance/actions/runs/6964444145/job/18951686919?pr=649 Is it expected? Are we doing something wrong in FerretDB/dance#649

@ujibang
Copy link
Contributor Author

ujibang commented Nov 23, 2023

Some features of RESTHeart requires MongoDB to be run as a replica set. This because change streams and transactions are available only on a replica set.

We run our tests against a single node replica set.

See https://restheart.org/docs/setup#run-with-mongodb

Basically you need to run mongo as follows::

$ mongod --fork --syslog --replSet=foo -dbpath=/tmp/db && mongosh --quiet --eval 'if (!rs.isMaster().ismaster) rs.initiate({});'

@ujibang
Copy link
Contributor Author

ujibang commented Nov 23, 2023

You can also skip tests that require a replica set (and run the tests against a standalone MongoDB process) as follows:

$ ./mvnw clean verify -Dkarate.options="--tags ~@requires-replica-set"

Also note that at https://github.com/softInstigate/restheart#execute-the-integration-tests-suite you will find instructions on how to run and test RESTHeart against FerretDB. You can notice that we specify there -Dkarate.options="--tags ~@requires-replica-set"

@b1ron
Copy link

b1ron commented Nov 23, 2023

Thanks @ujibang, we configured our MongoDB service as a single node replica set and it now passes.

@ujibang ujibang modified the milestones: 8.0, 8.1 Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants