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

Add MySQL backend #3413

Open
AlekSi opened this issue Sep 22, 2023 · 7 comments · Fixed by #4034, #4064, #4083, #4137 or #4145
Open

Add MySQL backend #3413

AlekSi opened this issue Sep 22, 2023 · 7 comments · Fixed by #4034, #4064, #4083, #4137 or #4145
Assignees
Labels
code/feature Some user-visible feature is not implemented yet community Issues and PRs assigned to community members help wanted Issues that require extra attention

Comments

@AlekSi
Copy link
Member

AlekSi commented Sep 22, 2023

What should be done?

There is a significant community interest in the MySQL backend for FerretDB. While FerretDB Inc. does not have plans to author one, we could help maintain it if someone in the community wrote it.

FerretDB's architecture was recently changed to make adding new backends easier. See https://blog.ferretdb.io/ferretdb-v1-10-production-ready-sqlite/

To add a new backend, three interfaces should be implemented: https://pkg.go.dev/github.com/FerretDB/FerretDB/internal/backends. Please take a look at existing backends for examples.

Additionally, it should be hooked into our build system, integration tests, and CI configuration.

Where?

https://github.com/FerretDB/FerretDB/tree/main/internal/backends

Definition of Done

  • backend created;
  • unit tests added/updated;
  • integration/compatibility tests added/updated;
  • spot refactorings done;
  • user documentation updated or an issue to create documentation created;
  • something else?
@AlekSi AlekSi added help wanted Issues that require extra attention code/feature Some user-visible feature is not implemented yet labels Sep 22, 2023
@AlekSi AlekSi added the community Issues and PRs assigned to community members label Oct 24, 2023
@adetunjii
Copy link
Contributor

@AlekSi Please I would like to work on this ticket.

@AlekSi
Copy link
Member Author

AlekSi commented Oct 30, 2023

@adetunjii any news? Anything we could help you with?

@adetunjii
Copy link
Contributor

@AlekSi I'm on it. I should be able to raise the first PR on it soon

@AlekSi
Copy link
Member Author

AlekSi commented Oct 30, 2023

@adetunjii please start with the backend code. We are going to change a lot of code around handlers: #3662

@AlekSi
Copy link
Member Author

AlekSi commented Nov 20, 2023

@adetunjii poke :)

@AlekSi
Copy link
Member Author

AlekSi commented Nov 24, 2023

@adetunjii, for the next step, I think we should integrate MySQL backend stub into our integration tests: add test-integration-mysql Taskfile.yml task, flags to setup.go, etc

AlekSi pushed a commit that referenced this issue Nov 29, 2023
@AlekSi AlekSi reopened this Nov 30, 2023
@AlekSi AlekSi mentioned this issue Nov 30, 2023
9 tasks
@AlekSi AlekSi reopened this Dec 11, 2023
AlekSi pushed a commit that referenced this issue Dec 19, 2023
@AlekSi AlekSi reopened this Dec 19, 2023
AlekSi pushed a commit that referenced this issue Jan 5, 2024
@AlekSi AlekSi reopened this Jan 5, 2024
AlekSi pushed a commit that referenced this issue Jan 31, 2024
@AlekSi AlekSi reopened this Jan 31, 2024
AlekSi pushed a commit that referenced this issue Feb 8, 2024
@chilagrow chilagrow reopened this Feb 8, 2024
henvic pushed a commit to henvic/FerretDB that referenced this issue Feb 8, 2024
@AlekSi
Copy link
Member Author

AlekSi commented Feb 13, 2024

@adetunjii As a next step, we probably should add MySQL backend there: https://github.com/FerretDB/FerretDB/blob/main/internal/backends/helpers_test.go#L40

AlekSi pushed a commit that referenced this issue Feb 14, 2024
@AlekSi AlekSi reopened this Feb 14, 2024
This was referenced Feb 15, 2024
AlekSi pushed a commit that referenced this issue Feb 27, 2024
@AlekSi AlekSi reopened this Feb 27, 2024
This was referenced Mar 1, 2024
AlekSi pushed a commit that referenced this issue Mar 4, 2024
@AlekSi AlekSi reopened this Mar 4, 2024
AlekSi pushed a commit that referenced this issue Mar 6, 2024
@AlekSi AlekSi reopened this Mar 6, 2024
This was referenced Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment