- Sequelizeのセットアップ: まず、Node.jsプロジェクトにSequelizeとpgパッケージをインストールします。
npm install sequelize pg
- Sequelizeの初期化: 次に、Sequelizeを使用してデータベースへの接続を確立します。以下は、Sequelizeの初期化の例です。
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'postgres',
});
- モデルの作成: データベースのテーブルに対応するモデルを作成します。以下は、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,
},
},
});
- マイグレーションファイルの作成: マイグレーションファイルは、スキーマの変更を定義するファイルです。以下は、新しいカラムを追加するマイグレーションファイルの例です。
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.addColumn('Users', 'age', Sequelize.INTEGER);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn('Users', 'age');
},
};
- マイグレーションの実行: マイグレーションを実行するためのコマンドを定義します。以下は、マイグレーションを実行するスクリプトの例です。
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を使用したスキーママイグレーションの方法です。これにより、データベースのスキーマ変更を追跡し、アプリケーションのバージョン管理と互換性を維持することができます。