メインコンテンツにスキップ
バージョン: v6 - 安定版

入門

このチュートリアルでは、Sequelizeの簡単なセットアップ方法を学びます。

インストール

Sequelizeはnpm(またはyarn)で利用可能です。

npm install --save sequelize

選択したデータベースのドライバーも手動でインストールする必要があります。

# One of the following:
$ npm install --save pg pg-hstore # Postgres
$ npm install --save mysql2
$ npm install --save mariadb
$ npm install --save sqlite3
$ npm install --save tedious # Microsoft SQL Server
$ npm install --save oracledb # Oracle Database

データベースへの接続

データベースに接続するには、Sequelizeインスタンスを作成する必要があります。これは、接続パラメータをSequelizeコンストラクタに個別に渡すか、単一の接続URIを渡すことで実行できます。

const { Sequelize } = require('sequelize');

// Option 1: Passing a connection URI
const sequelize = new Sequelize('sqlite::memory:') // Example for sqlite
const sequelize = new Sequelize('postgres://user:[email protected]:5432/dbname') // Example for postgres

// Option 2: Passing parameters separately (sqlite)
const sequelize = new Sequelize({
dialect: 'sqlite',
storage: 'path/to/database.sqlite'
});

// Option 3: Passing parameters separately (other dialects)
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: /* one of 'mysql' | 'postgres' | 'sqlite' | 'mariadb' | 'mssql' | 'db2' | 'snowflake' | 'oracle' */
});

Sequelizeコンストラクタは多くのオプションを受け入れます。それらはAPIリファレンスに記載されています。

接続のテスト

`.authenticate()`関数を使用して、接続が正常かどうかをテストできます。

try {
await sequelize.authenticate();
console.log('Connection has been established successfully.');
} catch (error) {
console.error('Unable to connect to the database:', error);
}

接続の終了

Sequelizeはデフォルトで接続を開いたままにし、すべてのクエリに同じ接続を使用します。接続を閉じる必要がある場合は、`sequelize.close()`を呼び出します(これは非同期でPromiseを返します)。

注記

`sequelize.close()`が呼び出されると、新しい接続を開くことができなくなります。データベースに再びアクセスするには、新しいSequelizeインスタンスを作成する必要があります。

用語の規則

上記の例では、`Sequelize`はライブラリ自体を指し、`sequelize`はSequelizeのインスタンスを指し、1つのデータベースへの接続を表していることに注意してください。これは推奨される規則であり、ドキュメント全体でこれに倣います。

ドキュメントを読むためのヒント

Sequelizeのドキュメントを読みながら、コード例をローカルで実行することをお勧めします。これは、より早く学習するのに役立ちます。これを行う最も簡単な方法は、SQLite方言を使用することです。

const { Sequelize, Op, Model, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');

// Code here! It works!

ローカルでセットアップするのが難しい他のデータベースを試すには、Sequelize SSCCE GitHubリポジトリを使用できます。これにより、GitHubから直接、無料で、セットアップなしで、サポートされているすべてのデータベースでコードを実行できます。

新しいデータベースと既存のデータベース

プロジェクトをゼロから開始する場合、データベースがまだ空の場合は、データベース内のすべてのテーブルの作成を自動化するために、最初からSequelizeを使用できます。

また、すでにテーブルとデータで満たされているデータベースに接続するためにSequelizeを使用する場合も、同様に機能します。Sequelizeはどちらの場合も対応しています。

ロギング

デフォルトでは、Sequelizeは実行するすべてのSQLクエリをコンソールにログに記録します。 `options.logging`オプションを使用して、Sequelizeが何かをログに記録するたびに実行される関数を定義することで、この動作をカスタマイズできます。デフォルト値は`console.log`であり、それを使用すると、ログ関数呼び出しの最初のログパラメータのみが表示されます。たとえば、クエリロギングの場合、最初のパラメータは生のクエリであり、2番目(デフォルトでは非表示)はSequelizeオブジェクトです。

`options.logging`の一般的な有用な値

const sequelize = new Sequelize('sqlite::memory:', {
// Choose one of the logging options
logging: console.log, // Default, displays the first parameter of the log function call
logging: (...msg) => console.log(msg), // Displays all log function call parameters
logging: false, // Disables logging
logging: msg => logger.debug(msg), // Use custom logger (e.g. Winston or Bunyan), displays the first parameter
logging: logger.debug.bind(logger), // Alternative way to use custom logger, displays all messages
});

Promiseとasync/await

Sequelizeによって提供されるほとんどのメソッドは非同期であるため、Promiseを返します。それらはすべてPromiseであるため、Promise API(たとえば、`then`、`catch`、`finally`を使用)をすぐに使用できます。

もちろん、`async`と`await`を使用しても問題ありません。