DEV Community

Cédric Karungu for KADEA ACADEMY

Posted on

Comment faire un système de backup de sa base des données avec sequelize et express.js

Pour mettre en place un système de sauvegarde automatique de la base de données avec Sequelize et Express.js, vous pouvez suivre les étapes suivantes:

- Installez les modules nécessaires:

npm install sequelize sequelize-cli mysql2
Enter fullscreen mode Exit fullscreen mode

- Créez un dossier "backups" à la racine de votre application, et un fchier server.js

Définissez une fonction qui exécutera la sauvegarde dans votre fichier "server.js" :

const Sequelize = require('sequelize');
const spawn = require('child_process').spawn;
const sequelize = new Sequelize('example_db', 'root', '', {
 host: 'localhost',
 dialect: 'mysql',
 operatorsAliases: false,
 pool: {
 max: 5,
 min: 0,
 acquire: 30000,
 idle: 10000
 }
});
function backup() {
 const fileName = `backup-${Date.now()}.sql`;
 const mysqldump = spawn(`mysqldump`, [
 ` - user=${process.env.DB_USER}`,
 ` - password=${process.env.DB_PASSWORD}`,
 ` - host=${process.env.DB_HOST}`,
 process.env.DB_NAME
 ]);
 mysqldump.stdout.pipe(fs.createWriteStream(`./backups/${fileName}`));
 mysqldump.on('exit', () => {
 console.log(`Backup saved at ./backups/${fileName}`);
 });
}
setInterval(backup, 86400000); // sauvegarder une fois par jour
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple, nous avons utilisé la fonction spawn() de Node.js pour exécuter le processus de sauvegarde de la base de données et stocker le résultat dans un fichier .sql.
Notez également que nous avons utilisé un intervalle de temps pour exécuter la sauvegarde une fois par jour. Vous pouvez ajuster cela en fonction de vos besoins.

- Lancez votre application :

node server.js
Enter fullscreen mode Exit fullscreen mode

- Vérifiez les fichiers de sauvegarde dans le dossier "backups" à la racine de votre application.

Ceci est un exemple simple de la mise en place d'un système de sauvegarde automatique de la base des données avec Sequelize et Express.js.
À bientôt, Cedric karungu

Image of AssemblyAI

Automatic Speech Recognition with AssemblyAI

Experience near-human accuracy, low-latency performance, and advanced Speech AI capabilities with AssemblyAI's Speech-to-Text API. Sign up today and get $50 in API credit. No credit card required.

Try the API

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay