You can always take a multi-tenant system and convert it into a single-tenant system a lot more easily. First and foremost, you can simply run the full multi-tenant system with only a single tenant, which if nothing else enables progressive development (you can slowly remove those now-unnecessary WHERE clauses, etc).
krainboltgreene|5 years ago
This is not true if your primary keys are int or bigint.
It's also not true if you have any sort of unique indexes that are scoped to a table.
cornishpixels|5 years ago
ehsanu1|5 years ago
gomox|5 years ago
In my experience by the time you reach this point you have a lot of operational complexity because you and your team are used to your production cluster being a single behemoth, so chances are it's not easy to stand up a new one or the overhead for doing so is massive (i.e. your production system grew very complex because there is rarely if ever a need to stand up a new one).
Additionally, a multi tenant behemoth might be full of assumptions that it's the only system in town therefore making it hard to run a separate instance (i.e. uniqueness constraints on names, IDs, etc).
egamirorrim|5 years ago
That's hard enough and then add to it that most clients want to BYOK to those instances