You can argue about that just the same as when client needs a feature X.
In my case, I was very often getting away with YAGNI or 'how about we implement nightly sync from pg to oracle' but not always.
Long-lived OSS software is a relatively stable bet, but the point still stands.
Exactly, so make the changes when you need them, otherwise you are relying on hitting the abstraction lottery
I feel the industry has a long hangover from the 80s and 90s in terms of the holdup problem. Oracle, basically, created a massive externality of anxiety about vendor lockin that continues to impose drag to this day.
In the majority of cases, I think a simple “runs on Postgres” is even more valuable today (unless your product is a database abstraction layer).
This is a clear example of where YAGNI applies, I think.
Extra work plus extra boilerplate to maintain. No payoff.
That said, extra code + boilerplate is a great way to treat riskier software.