Skip to Content (Press Enter)
OutSystems.com
Personal Edition
Community
Support
Training
Training
Online Training
Developer Schools
Boot Camps
Certifications
Tech Talks
Documentation
Documentation
Overview
ODC
O11
Forums
Forge
Get Involved
Get Involved
Jobs
Ideas
Members
Mentorship
User Groups
Platform
Platform
ODC
O11
Search in OutSystems
Log in
Get Started
Back to Forums
Derrick Hunter
116
Views
7
Comments
Backup and restoring Multi-Tenant sites
Question
HI
We are developing a multi-tenant application. The data that is stored for one tenant is not visible to other tenant.
I need advice on how we can backup/restore data per tenant.
Kilian Hekhuis
MVP
Hi Derrick,
You would usually handle backup and restore on database level (outside the platform), not per tenant. But if you want to do some automated backup, why not start a timer for each tenant that does the backing up?
Derrick Hunter
HI Kilian
If we had to restore a single tenant, without overwriting other tenant information, how would you suggest we do that? Also, how would you suggest we backup a single tenant
Kilian Hekhuis
MVP
Hi Derrick,
I can see your problem. I have honestely no idea what OutSystems vision is on that. Since the tenant is just an Id in a table, I think it's virtually impossible to back-up and restore a single tenant, especially with more complex data models.
Tiago Neves
Hi Derrick,
When designing your data model don't forget you can also have single-tenant entities. Not all entities are multi-tenant, as you can set the property "Is Multitenant" to No. And those are probably the ones that you want to backup/restore for that specific tenant.
Anyway, I don't know what is the OutSystems recommended way of doing it - would like to know.
Gavin Horne
Hi Derrick,
Personally I would consider backup-restore in a Multi-Tenant application to be a disaster recovery process only i.e. a catastophic event that affected all of your tenants.
I would focus on making your application idiot-proof so an individual tenant cannot corrupt their own data. If you have to provide a roll-back type of functionality maybe you could keep a detailed transaction audit trail in multi-tenant enabled entities which (in theory) would give the tenant the ability to 'undo' recent changes. If you search 'History' in the Forge you will find a couple of components that perform entity history versioning although more targeted at compliance than roll-back requirements.
I don't know your circumstances so the above may be off the mark but hope it gives you something to think about.
I would also like to here OutSystems thoughts.
Cheers,
Gavin
Justin James
MVP
You would need a very sophisticated backup/restore solution that is able to filter what is being restored based on the actual record information. I am not aware of anything like that.
The alternative would be to depend on the tenant views to back up data separately on a per-tenant basis using a serialized, ETL, etc. style process.
J.Ja
Curt Raddatz
Restoring the data would be the issue. Any ID that is autonumber would require preserving that number if the record you are trying to restore was deleted or finding every link to the record and fixing the links. I know of no Outsystems way of doing this so you'd have to write a fairly sophisticated extension, if it can be done at all. Now factor in that some entities are single tenant and you have an even more complicated problem.
Even with the transaction log method described above, deletion of records will always be an issue. That's why many people use the IsActive flag and literally never delete a record. Your application would have to implement that for all entities and never actually delete records for any restore process to work.
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting.
See the full guidelines
Loading...