본문 바로가기
gulp.js

17. Gulp와 백엔드 개발 - 2

by leo2114 2024. 1. 18.
반응형

데이터베이스 마이그레이션

데이터베이스 마이그레이션은 데이터베이스 스키마를 변경하거나 업데이트하는 프로세스를 말합니다. Gulp를 활용하여 데이터베이스 마이그레이션을 자동화하면 개발자는 데이터베이스 변경사항을 쉽게 관리하고 배포할 수 있습니다.

1. 데이터베이스 마이그레이션 도구 선택

가장 먼저 데이터베이스 마이그레이션을 수행할 도구를 선택해야 합니다. 대표적으로 사용되는 몇 가지 도구로는 Knex, Sequelize, Flyway 등이 있습니다. 이 중 프로젝트에 맞는 도구를 선택하고 초기 설정을 진행합니다.

예시: Knex를 사용한 데이터베이스 마이그레이션

npm install knex --save
npm install knex-migrate -g
knex init

2. 마이그레이션 스크립트 작성

마이그레이션 스크립트는 데이터베이스의 변경사항을 기술하는 파일입니다. 각 스크립트는 데이터베이스 스키마의 특정 버전을 나타내며, 새로운 변경이 필요할 때마다 새로운 스크립트를 작성합니다.

// 예시: 20211205120000_create_users_table.js
exports.up = function(knex) {
  return knex.schema.createTable('users', function(table) {
    table.increments('id').primary();
    table.string('username');
    table.string('email');
    table.timestamps(true, true);
  });
};

exports.down = function(knex) {
  return knex.schema.dropTable('users');
};

3. Gulp 작업 설정

Gulp를 사용하여 데이터베이스 마이그레이션을 자동화하는 작업을 설정합니다. 아래는 예시 코드입니다.

const gulp = require('gulp');
const { exec } = require('child_process');

gulp.task('run-migrations', function(done) {
  // Knex 마이그레이션 명령 실행
  exec('knex migrate:latest', (err, stdout, stderr) => {
    console.log(stdout);
    console.error(stderr);
    done(err);
  });
});

4. Gulp와 Watch 모드 통합

Watch 모드를 통해 마이그레이션 스크립트에 변경이 있을 때 자동으로 마이그레이션을 수행하도록 설정합니다.

gulp.task('watch-migrations', function() {
  gulp.watch('db/migrations/*.js', gulp.series('run-migrations'));
});

5. 마무리

이제 gulp watch-migrations 명령어를 실행하면 마이그레이션 스크립트의 변경을 감지하고 자동으로 데이터베이스 마이그레이션을 수행합니다. 이를 통해 데이터베이스 스키마의 변경을 효과적으로 관리할 수 있습니다.

 

데이터베이스 마이그레이션은 프로젝트의 확장성과 유지보수성을 높이는 데 중요한 역할을 합니다. 적절한 도구와 자동화를 통해 개발자는 데이터베이스 변경사항을 안전하게 관리하고 프로젝트를 원활하게 유지할 수 있습니다.

반응형