Ranter
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Comments
-
LFlo966yThis is called event sourcing. Also there are some (private) blockchain databases which could fit these needs
-
pskfry436yentityframework handles this nicely - but it won't keep a transactional history of the actual data, just the structure of the db.
EF codefirst approach has some really nice attributes, but it can also be a headache when you feel like you don't have control over the db (even tho you do - you just need to learn the CF method for doing what you already know how to do directly on the db) -
Voxera113976yTransactions and backups handle this.
Most databases does not support it in a way more like git due to performance.
When such options are required its usually built on top of the db using event sourcing where every change is logged and timestamped and a rollback is just replaying the log without the change. -
stop68046yyou could add a modified field and every modification inserts the value with an newer value.
-
"id you do something wrong"
who is "you"? which account? the admin one the same as you manually use? or the guest one the same as 20k thousands of, your api consumers use?
which one?
nice in principle, either non-usable or useless in practice -
Ora has all that. Saved my ass a couple of times when I accidentaly removed too many records in prod. Select * from table_x as of <timestamp>; pitty that flash memory is limited :)
How about a Git for Databases?
Do your changes, delete things, create things, and then when you are sure push these changes to your server.
If you did something wrong like accidentally delete fucking everything, just revert and everything is like before again.
Also you can view history and blame people for doing something wrong.
Tell me what you think about this. Not clue how you could implement this tho... Also I have enough to do already so feel free to take this idea!
random