I’m trying to understand Retool deeply — especially how Retool stores configuration data internally. I want to be able to back up everything properly, not just the database connected resources, but also:
• Table column widths
• Page layouts
• Components’ visual settings
• Folder & permissions
• Module structures
• Anything related to UI configuration
I’m also looking for documentation about Retool’s database tables — what each table means, what we can safely modify, and the best-practice maintenance & backup strategy.
I’m trying to understand Retool deeply — especially how Retool stores configuration data internally. I want to be able to back up everything properly, not just the database connected resources, but also:
• Table column widths
• Page layouts
• Components’ visual settings
• Folder & permissions
• Module structures
• Anything related to UI configuration
I’m also looking for documentation about Retool’s database tables — what each table means, what we can safely modify, and the best-practice maintenance & backup strategy.
Thanks for reaching out to Retool support. My name is John and I will be helping out with these database questions.
At the time, we have no public “full schema” documentation from Retool that explains exactly which table holds every piece of configuration (e.g. table column widths, component‑level visual settings, layout JSON structure, module references, access-control links, etc ) but I put in a documentation request to get this added to our public docs.
Here is a few tables I was able to dig into on my own that might be a helpful start:
pages - Each Retool app has a record in the pages table
page_saves - For every edit to an app, we record a page_save event. This is what powers the “releases” and “history” tabs in the app editor. The history of changes point to each page_save. The releases tab point to specific page_saves that are tagged with a release.
audit_trail_events - We log a lot of important events, including queries run, permission groups created and removed, users added to and removed from permission groups, etc.
users - each user has a record in this table
user_groups - Table joining users and groups
groups - Permission groups
For which are safe to edit, this would be none unless you are specifically told to by Retool support. Editing your database can cause serious/full breakage issues if not properly completed.
For backing up Retool specifically, having your external Retool databases backed up and your settings files such as (i.e. docker-compose.yml, docker.env, values.yml), should be enough. If your instance is not using an external database, this would be highly recommended for Production instances. This page here walks through how to configure that. Configure and migrate to an external database | Retool Docs
Let me know if you have any further questions or concerns while we wait for some more robust documentation to be generated for the public for the tables/schema of the Retool db.