this post was submitted on 01 Jul 2023
22 points (92.3% liked)

Selfhosted

39435 readers
6 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Hey there, I thought about starting my own Lemmy instance, yet I'd really like to use my already running MariaDB server for the database. I haven't found anything in the docs (might be me though). Is that possible or will I have to set up Postgresql?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago

I'm going to plus one what others are saying here. As someone who wears dev and sysadmin hats, Postgres is just a way better database. For new projects, Postgres should be the go to unless you've got a niche use case.

Even with Diesel (or some other query builder) in use, it's not uncommon for apps to use special features specific to a database. It can also be a major pain just to test that your app actually works on these other databases, and then support weird slow downs, migrations, etc

I'll give the example that MySQL and MariaDB don't support transactions for SQL DDL. Basically what that means if that if you want to write a database migration to update the layout of one of your tables, there's no way in MySQL to have the database automatically revert your changes if something fails during the database changes... You're just screwed unless you have a backup. Meanwhile with Postgres, you just say rollback in your transaction, and things are back to normal.

There are also other less serious quirks like if you insert a NULL into and Integer field that's specifically marked not null, Postgres will error, MySQL/MariaDB will just silently convert that to a 0.

Like in a way, MySQL is the "JavaScript" of databases, and that's not what you want at all.