this was such a good intro to DB handling in rust! definitely demystified a lot the process. i was still learning rust building up to using it for backend development by for some reason was really terrified of how it would be like but honestly its really a reasonable experience and im looking forward to getting to that point.
@dreamsofcode Жыл бұрын
I'm really glad to hear that! Thank you for the feedback. I'm looking forward to doing some more microservice content in rust in the future as well.
@spr3ez Жыл бұрын
Really love your videos. Rust and Postres are just best. keep it up!
@dreamsofcode Жыл бұрын
Thank you! I appreciate that a lot.
@UthpalaHeenatigala Жыл бұрын
These tutorials are brilliant. Keep going you have something here :)
@dreamsofcode Жыл бұрын
Thank you!
@gustav_spin Жыл бұрын
Thank you very much for the video, I was even looking for one that explained the use of sqlx.
@dreamsofcode Жыл бұрын
Glad it was helpful!
@coderaiders-yt Жыл бұрын
I was having a horrific day trying to connect to my AWS Postgres db in Rust, until this video. Thank you!!
@Floppix93 Жыл бұрын
Really love the content ! Funny, informative and on point. Keep up the great work
@dreamsofcode Жыл бұрын
Thank you!
@alangamer50 Жыл бұрын
fr, some mfs would have taken an entire video just to explain the installation
@vlad79516 ай бұрын
Nice! Thanks for the video! It helped me a lot with a small project that I had to move from SQLite to Postgres coming from a JS background.
@chuckocheret41154 ай бұрын
Thanks for this! Got me up to speed much more quickly than the docs.
@jmon24ify6 ай бұрын
Nice video! How the code is written remind me a lot of how I did things in PHP back in the day so it was very easy to understand.
@minzmango1915 Жыл бұрын
Man, you're a blessing. I don't really care about Rust that much tbh, but I just love your videos
@dreamsofcode Жыл бұрын
Oh thank you, I appreciate that a lot 🙏 Anything you wanna see? I'm still figuring out what I wanna niche down on!
@minzmango1915 Жыл бұрын
@@dreamsofcode Since you seem to like it, I'd be interested in a Postgres deep dive (like interesting features it has that other DBMS don't or something like that). But honestly I'll consume whatever you upload
@dreamsofcode Жыл бұрын
Ok awesome. I have a lot I can dig into with postgres!
@ruleofnine Жыл бұрын
if anyone else the " the trait `Executor
@felixontheinternet478411 ай бұрын
Thanks! Helped me
@gang_albanii3 ай бұрын
or even simpler - txn.as_mut()
@tumi_tigur Жыл бұрын
Very good video, cant believe im excited to test an sql package
@dreamsofcode Жыл бұрын
I'm glad it inspired you!
@ikay1234 Жыл бұрын
Came from diesel headache. Great content. Subscribed..
@dreamsofcode Жыл бұрын
I'm glad you liked it!
@xit Жыл бұрын
Learned a lot of new stuffs. Thanks! :D Subbed!
@dreamsofcode Жыл бұрын
Oh awesome! I'm really glad you enjoyed it. Thank you!
@sergp7480 Жыл бұрын
the density of knowledge is insane, keep it up! I really like your rust videos. Have you thought about creating rust + iced video or any other idiomatic rust gui lib?
@dreamsofcode Жыл бұрын
Thank you! I appreciate that. I wonder if it's perhaps too dense and I should spread it out some what 😅. I haven't yet but I will look into it! I've wanted to do a gui library video for a while so perhaps now is a good excuse to do so!
@jacoblaney3011 Жыл бұрын
Really dig the video. Dig all of your vids actually. I just have one question: what next? I get this is more of a theory driven video, showing how interacting with a Postgres database can be done via Rust using a rust crate but how might one use something like this in a real application outside of just changing the params and CRUD code in your IDE? Maybe showing what it takes to have a JavaScript front end that invokes a Rust backend? Or even just a command line interaction?
@dreamsofcode Жыл бұрын
Thank you for the feedback. That's a great question. I think a video that goes over the entire flow of creating a microservices in rust might be beneficial to help tie everything together!
@yapet Жыл бұрын
I don’t think you need turbofish for query_as. I find it much more convenient to just add type annotation to the variable declaration, ie`let book: Book = …` God I love ocaml-ish/haskell-ish type deduction of rust.
@ant1fact Жыл бұрын
I like to annotate my variables too. There are still some places like closures where you can't always avoid turbofish though
@LinuxForLife Жыл бұрын
Really inspiring! Thank for the share. 👍🍬
@杨阳-q9b Жыл бұрын
very helpful, thank you!
@luiscarlosjayk7 ай бұрын
Hey, think you missed to mention the cargo sqlx prepare command, and offline mode.
@dmytrozelinskyi48248 ай бұрын
Short and clear. Thank you !
@clusterdriven Жыл бұрын
Great video!
@lautaroblasco Жыл бұрын
Good video bro
@peterboshe621711 ай бұрын
A thumbs up solely for the mean girl's reference. solid and informational material but yeah, mean girls.
@vencler Жыл бұрын
Hey, unrelated question/suggestion: would you be willing to create a video covering your setup (tooling, apps, themes, best practices, anything usefuf/interesting in regards to software/hardware.)? If so, that would be dope. :)
@dreamsofcode Жыл бұрын
I absolutely would love to! I have so many videos I could make on it haha
@vencler Жыл бұрын
@@dreamsofcode i turned on the notifications, looking forward to it!
@kappilino Жыл бұрын
Is SQLx verifying the querys in term of securtiy aspekts as sql injections ? Because it is quite time consuming and error-prone to do it yourself. The posgres crate and rusqulite make this
@Mankepanke7 ай бұрын
Yes, since parameters are all bound parameters.
@brencancer Жыл бұрын
i like the code editor , is it sublime, atom or vscode? linux distro??
@theintjengineer Жыл бұрын
It looks like a highly customised (Neo)Vim [an editor]; this isn't the best part though - it's this skills with it. It's probably what he talks about on one of the videos in the same playlist ["Perfect Neovim setup for Rust"]
@Mankepanke7 ай бұрын
It's NeoVim, inside of Tmux running the Catppuccin theme. Looks like.
@TheBurntHoney Жыл бұрын
Why do you have the query on two seperate lines? Eg q=“” query=sqlx::query(q)
@АртемФедоров-ю7б9 ай бұрын
what about choosing database driver at runtime? for example if application needs to support at least 2 databases - sqlite for tests and postgres for production?
@dreamsofcode9 ай бұрын
Id personally use PostgreSQL for testing via something like testcontainers. Otherwise you're not really testing your database interactions with PostgreSQL. I'll have a video coming out about that soon!
@chuckocheret41154 ай бұрын
The GitHub link provided doesn't appear to actually contain the Rust code from the video.
@narthanaj Жыл бұрын
Im gonna learn rust
@uberloss10 ай бұрын
I'm a beginner and I find bugs in the tutorial hard to figure out like why the second argument to update() is never used. What is the point of it.
@sergp7480 Жыл бұрын
4:39 - typo &sqlx::PgPool not &sqlx:PgPool 4:43 - typo $1 not %1
@dreamsofcode Жыл бұрын
Thank you for catching those!
@danraine9009 Жыл бұрын
Awesome video, could you make a video on handling errors coming from poetgresql I have implemented the happy path nicely but am struggling to decode any errors for example if two email addresses match when trying to add a something to the db. Thanks again ❤️
@dreamsofcode Жыл бұрын
Absolutely! This is a great idea
@danraine9009 Жыл бұрын
@@dreamsofcode awesome thank you for your work
@mrknopester Жыл бұрын
What are your thoughts on SeaORM?
@dreamsofcode Жыл бұрын
I need to try it out, really! Although personally I tend to not use ORM's too often as I like to handcraft SQL sometimes. SeaORM does look really appealing though.
@ProjectWeekend-h4z Жыл бұрын
I don't care about Rust, the video is just enjoyable 😁
@dreamsofcode Жыл бұрын
That means an awful lot to me! ❤️ Is there anything you'd like to see that I can create for you?
@bendo01 Жыл бұрын
can you teach us using sqlxmq ?
@clusterdriven11 ай бұрын
Is there a way to have the migrations have some programmatic sauce in them? I see the migrations in the SQL format. I wonder if there is a way to write migrations in rust instead?
@dreamsofcode11 ай бұрын
An ORM would be able to do migrations in Rust. SeaORM is one that's pretty popular
@johnnyblack4261 Жыл бұрын
WHich one should I use sqlx or sea-orm?
@dreamsofcode Жыл бұрын
It depends on what your personal preference is! I typically prefer raw SQL to ORMs as I feel it gives a greater level of understanding, but not everyone thinks the same way as I do
@johnnyblack4261 Жыл бұрын
@@dreamsofcode I see mate, after taking a look between the two, I think I would prefer Sea_orm as you are not using strings to do select statements etc, easily using strings to do select statements can lead to bugs as you can compile it with a syntax error, at least with seaorm it will fail to compile, plus you get auto suggestions.
@dreamsofcode Жыл бұрын
@@johnnyblack4261 I think if that works for you, you should go for it! I tend to make use of testing to be sure that the sql statements work, rather than fully trusting the compiler when it comes to databases!
@johnnyblack4261 Жыл бұрын
@@dreamsofcode Ah right makes sense. I actually got another question, if I wanted to have a (small) database webserver and I wanted to use seaorm, would the seaorm code run on the client's software?
@dreamsofcode Жыл бұрын
@@johnnyblack4261 for web applications, generally no. You should have an API that is called and the database connection live on the server.
@GlobalYoung7 Жыл бұрын
thank you 😊
@ahmedAltariqi3 ай бұрын
Can I use this with Tauri?
@coffee-is-power Жыл бұрын
You completely forgot the sqlx macros, they're really amazing, they run the queries at compile time on your local database to check if they're valid
@dreamsofcode Жыл бұрын
The macros are great!
@spr3ez Жыл бұрын
Whats you neovim theme?
@dreamsofcode Жыл бұрын
Catppuccin! It's probably my favorite color scheme
@spr3ez Жыл бұрын
@@dreamsofcode yeah its really cool! thanks ima try it, I already use a very similar one, so probably gonna switch
@kairunhanjun11 ай бұрын
What %1 and $1 is for? can i put custom column like UPDATE book SET `#1`=%1 WHERE ISBN = $3?
@michawhite76132 ай бұрын
@@kairunhanjun Look into "prepared statements"
@SandwichMitGurke Жыл бұрын
and why do you prefer it over diesel?
@dreamsofcode Жыл бұрын
Diesel isn't async, and it's an ORM. So those are the two considerations I have against it.
@CorneliusCornbread Жыл бұрын
Why use tokio over the standard async library?
@dreamsofcode Жыл бұрын
You still need a runtime for async in Rust. I believe there's only async_std, tokio and smol. Tokio is the most popular of the three.
@sharkpyro93 Жыл бұрын
what about relationships? there is not 1 single example online on how to handle relationships with sqlx
@dreamsofcode Жыл бұрын
Are you talking about joining data sets using a SQL JOIN and returning the data model?
@sharkpyro93 Жыл бұрын
@@dreamsofcode i was referring to provide the query_as() with a model that has some nested structs with different relationships mapping to them automatically, turns out is not doable, its either i go full on raw sql and setting the results manually, or using an orm but diesel orm stinks and seaorm is terrible too, guess i cannot use rust
@robert-m6u7d Жыл бұрын
@@sharkpyro93 I came to the same conclusion. On top of that relationships in SeaORM, according to the docs, have to be done using the lazy concept when you have more than 2 relationships. Which is the same as using sqlx and then manually mapping the results. I invested a lot more than I was anticipating.
@sharkpyro93 Жыл бұрын
@@robert-m6u7d yea rust is not a good fit for apps that need intense db crud, takes forever to manually write everything, also its not a safe approach
@Mankepanke7 ай бұрын
I suppose you do it the same way as you always do when not working with an ORM. Is there something specific that you don't find to be working well?
@jly_dev5 ай бұрын
sea-query + sqlx = ❤
@kurt7020 Жыл бұрын
"I'd also consider using it for other databases such as mysql" - Face it, there's no way you're ever going back to mysql. XD
@dreamsofcode Жыл бұрын
🤣🤣🤣 bruh how you know me so well
@ruizdiazever Жыл бұрын
Is very fast and simple buy with Axum change everything! D:
@NotherPleb Жыл бұрын
I need your theme
@hussainsharza931911 ай бұрын
Short and Simple
@HubertSobkow5 ай бұрын
This is what I was looking for. Diesel and SeaSql are ORM's and for the love of god! PLEASE STOP USING ORM'S! They hurt you and your project. It seems this package is from the same group of people that build sqlx for golang! Even better! :D