SequelizeとPostgreSQLを使用したスキーママイグレーションの方法


  1. Sequelizeのセットアップ: まず、Node.jsプロジェクトにSequelizeとpgパッケージをインストールします。
npm install sequelize pg
  1. Sequelizeの初期化: 次に、Sequelizeを使用してデータベースへの接続を確立します。以下は、Sequelizeの初期化の例です。
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'postgres',
});
  1. モデルの作成: データベースのテーブルに対応するモデルを作成します。以下は、Userモデルの例です。
const { DataTypes } = require('sequelize');
const User = sequelize.define('User', {
  name: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
    },
  },
});
  1. マイグレーションファイルの作成: マイグレーションファイルは、スキーマの変更を定義するファイルです。以下は、新しいカラムを追加するマイグレーションファイルの例です。
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.addColumn('Users', 'age', Sequelize.INTEGER);
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.removeColumn('Users', 'age');
  },
};
  1. マイグレーションの実行: マイグレーションを実行するためのコマンドを定義します。以下は、マイグレーションを実行するスクリプトの例です。
const Umzug = require('umzug');
const umzug = new Umzug({
  migrations: {
    path: './migrations',
    params: [sequelize.getQueryInterface(), Sequelize],
  },
  storage: 'sequelize',
  storageOptions: {
    sequelize,
  },
});
(async () => {
  await umzug.up();
  console.log('Migration completed');
})();

これで、Sequelizeを使用してPostgreSQLデータベースのスキーママイグレーションを行う準備が整いました。マイグレーションを実行すると、新しいカラムやテーブルの作成、既存のスキーマの変更などがデータベースに適用されます。

以上が、SequelizeとPostgreSQLを使用したスキーママイグレーションの方法です。これにより、データベースのスキーマ変更を追跡し、アプリケーションのバージョン管理と互換性を維持することができます。