Backend DB changes

Hello team

wanted to inquire on the way to make changes and update data from the back end after it has been upload in the DB

@jkuester @diana

Hi @cliff

Can you provide more details? I’m not sure I understand.
Are you asking about how you can edit documents after they have been synced to the server?

yes @diana sure :+1:

I’m not sure I understand :slight_smile: Can you please provide more details into what your desired outcome is?

@diana Sure i will …

we are getting wrong next appointment dates in the 2wT DB, which are eventually synced to the postgres DB and we would like to find a way to change these dates if possible

A common practice for this is to write a script using the CouchDB API to make the change directly in the data.

This is dangerous. You need to be very careful when doing this. Take a backup before you run the script and test your scripts outside production first.

Here is a script similar to what you might need:

import axios from 'axios';

const username = 'username';
const password = 'password';
const axiosInstance = axios.create({
  baseURL: 'https://myinstance.echis.go.ke',
  auth: {
    username,
    password
  },
});

async function updateReportsWithType() {
    const readResponse = await axiosInstance.get('/medic/_design/medic-client/_view/reports_by_form', {
      params: {
        keys: JSON.stringify([
          ['form_name1'],
          ['form_name2']
        ]),
        include_docs: true,
        reduce: false
      }
    });

    const docs = readResponse.data.rows.map((row: any) => row.doc);
    docs.forEach(doc => {
      doc.fields.make_a = 'change';
    });

    await axiosInstance.post('/medic/_bulk_docs', {
      docs: docs,
    });
}

updateReportsWithType();

Run via npx ts-node script.ts

1 Like

sorry for the late response @kenn,
thanks for this