Re:Ask HN: What new technology / software are you waiting for?
by ramtatatam on Sunday October 06, 2019 @04:25AM
(#21170588)
It's very hard, merging schemas manually is painful and leads to errors. I'm writing this from experience..
Such tool is on my list since long ago, but unfortunately there is only 24 hours in the day :)
Re:Ask HN: What new technology / software are you waiting for?
by jolmg on Monday October 07, 2019 @08:41PM
(#21187536)
Some years ago, I wrote a tool to merge databases. There were a few differences in schema that it handled through configuration, but the tool was mostly about changing primary and foreign keys as it transferred the data so the merges wouldn't clash.
What's your use-case on "merging schemas"? Does it not merge data? Is it like you have a database with a table with columns "foo", and "bar", and then another database with a table with columns "bar", and "baz" and you want one of the database to end up with columns "foo", "bar", and "baz" without moving any of the actual data?
Re:Ask HN: What new technology / software are you waiting for?
by ramtatatam on Thursday October 10, 2019 @09:50AM
(#21214426)
I'm using all sort of building blocks, I recall functions, views, custom types, triggers, publications on per-table basis. In most cases I don't allow for my schemas to divert, but there had been situations like developing next generation of the system where for reasons out of my memory I had to wait till job was done and then merge schemas. Probably this could have been avoided but in the same time I was not there when decisions was made :)
Re:Ask HN: What new technology / software are you waiting for?
by karmakaze on Monday October 07, 2019 @06:39PM
(#21186756)
I see--it's not so much the diff but applying that diff.
Re:Ask HN: What new technology / software are you waiting for?
by ramtatatam on Thursday October 10, 2019 @09:51AM
(#21214436)
Oh yes, writing patch is one thing, write migration is the next level.
Seems like this isn't something you have to wait for, you can start making one in a language other than C (like Rust jk).