I’m wondering if I should use Diesel in my project. I feel more comfortable writing SQL directly because I’ve used it before, but I’ve never done a database migration, I always deleted the database when I had to change it. So I don’t know if I should learn Diesel to get migrations automatically or learn to do them directly in SQL. What would you recommend?
I highly recommend it. No matter what you do, you will need to do database migrations, and diesel makes that incredibly easy.
Even for db’s with just a few tables, diesel gives you compile time checking, something almost no other ORM supports.
At work, our postgres schema is defined in an *.sql file and whenever we update it, we generate a migration sql script using a tool (that looks like it is not being maintained anymore) called tusker. All our queries are handwritten. It is a nightmare.
If you’re just doing static queries against one database, sqlx will probably be your best friend. You can easily access the raw power of the database using a simple async API. Diesel starts to get more powerful when you change your queries based on something like parameters to a web API. You can do that yourself, but you’ll be reinventing the wheel (and probably adding in vulnerabilities).