DEV Community

Michael Willian Santos
Michael Willian Santos

Posted on

Prisma - Backup System

// start

Hi everyone!
GitHub of the Project


Use this module to create a backup measure for your project that uses Prisma. You can either backup the information, or use them to migrate to another database, or just to reset the database.
Example: Let's say that you need to change a unique key (email) to another like (code). You can backup first,
then change the schema.prisma, and use this module to inject the old information.


// How To Use

Basic example using the Prisma, let's imagine that we have two models, User & Post. And the Post model is related to the User model.

import { PrismaClient } from '@prisma/client';
import { backup } from '@vorlefan/prisma-backup';

const prisma = new PrismaClient();

void (async function () {
    const [user, post] = await prisma.$transaction([prisma.user.findMany({}), prisma.post.findMany({})]);

    // w/out encrypt

    await backup({
        models: {
            user,
        },
    });

    // encrypting the models

    await backup({
        models: {
            user,
        },
        encrypt: true,
        password: 'pwd123',
        backupFolderName: 'encrypted'
    });
})();
Enter fullscreen mode Exit fullscreen mode

// End

There a lot of feature that I'm planning for this module, then if you want to, please contribute or follow up the news xD

Top comments (4)

Collapse
 
mitch1009 profile image
Mitch Chimwemwe Chanza

i would love to see this module backup all data based on the current schema.prisma file without having to call each model one by one.

Collapse
 
daxsoft profile image
Michael Willian Santos

It's been a while since I did it, and by now my experience and skill is a ocean of difference xD. I'll do it when I get free time from my work.

Collapse
 
chriszlr profile image
Chris

Hi, how exactly does it work? where will the backed up data be stored?

Collapse
 
daxsoft profile image
Michael Willian Santos

It's been a while since I did it, and by now my experience and skill is a ocean of difference xD It's meant to be used as ad hoc, so you're the only one to choose where to go.