Autorply database migration

Follow along If you started out with a bundled install of postgres, redis and autorply in a single instance and now wants to migrate to managed database service. In this guide, we assume you want to migrate to AWS RDS. This guide should be equally applicable to any other managed database service or even migrating data between different Autorply installations.

Step 1: Stop Autorply service

Stop Autorply service to stop database activity.
sudo systemctl stop chatwoot.target

Step 2: Back up the database

Back up the database using pg_dump tool.
pg_dump -Fc --no-acl --no-owner  -U postgres chatwoot_production > /tmp/cw.dump

Step 3: Create RDS instance

Create an RDS Postgres instance in your AWS account. Refer to the AWS documentation.

Step 4: Verify connectivity

Verify connectivity to the new RDS instance from your Autorply installation.
psql -h <hostname> -u <username> -d postgres

Step 5: Restore the database

Restore the database from the backup file.
pg_restore --verbose --clean --no-acl --no-owner --create -U postgres -d postgres /tmp/cw.dump

Step 6: Update environment variables

Modify the Postgres related environment variables to use the new RDS credentials.
sudo -i -u chatwoot
cd chatwoot
vi .env

Step 7: Start Autorply service

Start the Autorply service.
sudo systemctl start chatwoot.target
If you are getting the Autorply onboarding screen again on visiting your self-hosted Autorply URL, login to the rails console and run the following:
sudo cwctl --console
::Redis::Alfred.delete(::Redis::Alfred::CHATWOOT_INSTALLATION_ONBOARDING)