Migrating from self-hosted to cloud. Tedious

We are looking to migrate our self-hosted instance to the cloud.

We currently have a CI/CD pipline for updating the self-hosted instance version. This does a pg_dump of the production database and pg_restore onto our sandbox database. This gives us the ability to check everything is working with the new version before promoting it to production.

This process is very quick, after 15 mins the sandbox instance is a complete replica of our production instance with all apps, resources, users, queries, change sets, everything migrated.

Looking through the migration guide provided by Retool it looks like they first want us to manually recreate all the resources, they then want us to manually export each table of our self-hosted retool PostgreSQL database as a CSV and then import it manually into the new cloud database. Lastly, they want us to manually re-create all the queries as well as export and import all apps.

This seems incredibly tedious. Is there not a more automated way of doing all this? Considering we do this on a regular basis to replicate our production instance to our sandbox instance. Maybe there is a way of uploading a pg_restore dump? Or is there a connection string we can get access to for the cloud database instance to allow us to pg_restore ourselves?

I also do not understand why we need to recreate the resources, queries, and apps manually outside of the export/import of the database tables. Aren't all the resources, queries, and apps stored in the database? Why would they not be copied over as part of the database export/import?

Any help from someone who has done this before, or clarification of the migration guide would be much appreciated.

Hey @Lee_Staples! The process of going from Self Hosted => Cloud is definitely different than Self Hosted => Self Hosted namely because you do not have access to the underlying DB of the cloud instance. Unfortunately, there is not a more automated way of making this migration.

they then want us to manually export each table of our self-hosted retool PostgreSQL database as a CSV and then import it manually into the new cloud database

This step in the docs is actually referring to any tables in the RetoolDB product, not the underlying database powering the instance, though I can definitely see where the confusion in naming comes from.

I also do not understand why we need to recreate the resources, queries, and apps manually outside of the export/import of the database tables. Aren't all the resources, queries, and apps stored in the database? Why would they not be copied over as part of the database export/import?

As the above does NOT refer to moving data from the underlying db, these items do need to be recreated manually.

Hopefully that clears up a bit about the why. Let me know if you have any other questions.