-
-
Notifications
You must be signed in to change notification settings - Fork 1
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
Migrate to sea-orm
instead of Diesel
#1852
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fantastic - thank you so much for migrating everything over! I'm a little confused on why cargo deny
is failing here, but I don't believe it's our fault.
I believe this should be set to merge; would it be possible to rebase everything on top of recent commits?
I forgot to set the PR to a draft, everything is not 100% finished yet. But, it shouldn't hurt to rebase everything now. CI will need a bit of updating (especially our release pipeline, which is going to be a lot more complex and require a lot of compute (I am tempted to get GitHub Teams for this organization so we can have the large runners as I do not have access to aarch64 Linux machines)) |
…ted-types is 100% finished
yet another PR that Noel makes that refractors a whole lot but this is the last time I swear!This gigantic PR migrates away from Diesel and experiments with sea-orm. There are numerous reasons why I decided to migrate to sea-orm:
Uses
sqlx
as the database library, solibsqlite3
andlibpq
are not required. PRs like fix(deps): update rust crate libsqlite3-sys to 0.31.0 #1849 and fix(deps): update rust crate pq-sys to 0.7.0 #1847 don't happen & eliminate requirements for thebundled_{sqlite,pq}
feature flags in thecharted
binary.Diesel requires a LOT of derive macros and magic to work properly and it can easily break when managing multiple databases (ref.
charted_database::connection!
invocations in src tree)While sea-orm does require some code to work for newtypes and other fun stuff, it isn't as from diesel and trying to juggle multiple databases is very easy and doesn't even require the hard work (like
charted_database::connection!
and such)This PR also cleans up the
crates/
library and prepares thecharted-types
andcharted-core
crates to be public to crates.io for the REST client (charted-client
) to be readily available at launch.