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?
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).
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.