I'm facepalming so hard today. On the discussion of whether #lemmy should start supporting plugins in order for more developers to be able to inject the extra functionality they need, I have a rust fanboi insisting that no, the better approach is to make every admin who needs this compile lemmy from scratch to add the extra functionality. According to them this can be totally as easy as plugins.
The only time I've had to "recompile the software in order to add a feature" was adding Fibre Channel support to the Linux kernel so it can boot off the SAN.
I'm now almost through migrating PG to MySQL with Stored Procedures only. Ended up with 140 Stored Procedures. The insights I gained into the business domain are incredible.
Now there are some bigger challenges:
How to test an API that literally has hundreds of different endpoints + parameter combinations against the new version
How to transfer data of a 100GB+ sized PG to MySQL in a timely manner so that downtime is reduced to < 15 minutes.
Or even more challenging: how to transfer 60 PG tables to MySQL with a "slightly" optimised schema and a buggy pg_dump exporter, that wrongly decodes JSON values into unreadable data (bug filed 2015, maintainers not interested)? Or a buggy PG_MySQL Foreign Data Wrapper that fails with Boolean and JSON columns (bug filed in 2020, maintainers not interested)?
I've tried 10 different tools that advertise themself as a solution to this and not a single one was able to overcome these challenges (issues with JSON, Timestamp and Boolean columns). Any hints?
So if "interoperability" is a goal of the SQL standard, it clearly failed. If "interoperability" is a benchmark for open source databases, Postgres doesn't shine at all. All the features that make Postgres "so good" (like ARRAYs which are unknown to every other SQL database, BOOLs and Custom Types) are in fact locking your project in like forever.
However, I'm not the one who gives up easily. I'll likely end up with a hand-rolled migration tool and then sell it to make a fortune off it, for all those non-existing devs who want to migrate away from Postgres. :neofox_evil:
PostgreSQL uses MVCC for transactions. I don't think MySQL does.
Because different databases handle transactions differently, the Unit Tests could pass but going live (with a multitude of users) could be your undoing.
TL;DR - have a DOWNGRADE path tested and working before you start.
She’s being asked to take on new responsibilities at her job and wants to be properly compensated. They’re asking her to do Microsoft Access work. Her role isn’t technical and has nothing to do with it. (She’s also a Black woman who doesn’t want to get walked over because of it.)
Does anyone have any advice or info about what compensation looks like for that kind of work? Thanks in advance!
which tool are people using nowadays for #database#migrations? Are you using a library in your application programming language or an external tool? What are the current best practices?
I swore off using any closed source Oracle products after watching a large customer of mine getting this treatment years ago with the Oracle Database. At the time I was wedded to the JVM world so it became my insistence to never use anything but OpenJDK on any device. With their latest finger wagging around Red Hat's maneuvers, which I don't agree with btw, I was thinking back to those days. I wondered if they were still up to those shenanigans, assuming that they were. Yep they are. Never ever trust Oracle. To the Red Hat adjacent Linux distros that hitched their wagon to Oracle in that battle, may god have mercy on their souls. #oracle#linux#java www.theregister.com/2023/07/05…
People wonder why I like ORMs even when they're unnecessary. Firstly, I've never liked SQL. I think that writing queries to a RDBMS is something that a computer should do, akin to compilation. In the few times when extreme optimization is warranted, low level code can be generated to suit that specific case. In other times, ORMs usually provide a more natural interface to data that increases readability and code flow.