[javascript] Express.js에서의 DB 마이그레이션 처리 방법

Express.js는 Node.js를 위한 강력한 웹 프레임워크로 많은 사람들이 사용하고 있습니다. 실제 프로젝트에서는 데이터베이스 마이그레이션 처리가 필요한 경우가 많습니다. 이 글에서는 Express.js에서 데이터베이스 마이그레이션을 처리하는 방법에 대해 알아보겠습니다.

1. 마이그레이션 도구 설치

먼저, 마이그레이션을 처리하기 위해서는 마이그레이션 도구가 필요합니다. 가장 널리 사용되는 마이그레이션 도구는 “Knex”입니다. Knex는 SQL 쿼리를 생성하고 실행하는데 도움을 주며, 여러 다양한 데이터베이스를 지원합니다. Express.js와의 호환성도 우수하며, 간단한 설치 절차를 통해 사용할 수 있습니다.

$ npm install knex --save

2. 데이터베이스 연결 설정

마이그레이션을 수행하려면 데이터베이스와의 연결 설정이 필요합니다. Express.js에서는 일반적으로 “dotenv” 패키지를 사용하여 환경 변수를 관리합니다. 이를 통해 데이터베이스 연결 정보를 안전하게 유지할 수 있습니다.

require('dotenv').config();

const knex = require('knex')({
  client: process.env.DB_CLIENT,
  connection: {
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
  },
});

위의 코드는 “.env” 파일에서 DB 연결 정보를 가져와 Knex와 연결하는 예시입니다. 실제로 사용할 데이터베이스에 맞게 환경 변수를 설정해야합니다.

3. 마이그레이션 파일 생성

마이그레이션 파일은 데이터베이스 스키마 변경을 수행하는데 사용됩니다. Knex를 사용하여 마이그레이션 파일을 생성할 수 있습니다.

$ npx knex migrate:make [migration_name]

위의 명령은 새로운 마이그레이션 파일을 생성합니다. 마이그레이션 파일은 데이터베이스 스키마 변경을 위한 “up”과 “down” 함수를 포함하고 있습니다. “up” 함수는 스키마 변경을 수행하고 “down” 함수는 변경을 되돌리는 역할을 합니다.

4. 마이그레이션 실행

마이그레이션 파일을 생성했다면 이제 마이그레이션을 실행할 차례입니다. 다음 명령을 사용하여 마이그레이션을 실행할 수 있습니다.

$ npx knex migrate:latest

위의 명령은 마이그레이션 파일을 차례대로 실행하여 데이터베이스 스키마를 업데이트합니다. 이미 실행된 마이그레이션 파일은 무시되며, 이전 버전으로 롤백하려면 다음 명령을 사용할 수 있습니다.

$ npx knex migrate:rollback

마무리

Express.js에서 데이터베이스 마이그레이션을 처리하는 방법에 대해 알아보았습니다. Knex를 이용하여 마이그레이션 파일을 생성하고 실행함으로써 데이터베이스의 스키마를 유지 관리할 수 있습니다. 데이터베이스 마이그레이션은 프로젝트의 변화에 유연하게 대응하기 위한 필수적인 작업이므로, 프로젝트에 적용해보시기 바랍니다.


참고 링크: