LoginSignup
1
1

【node.js】Sequelizeによるデータベース操作

Posted at

はじめに

Sequelizeとは、TypeScriptまたはNode.jsで使用できるORM(Object-Relational Mapping)ライブラリで、簡単に言うと「データベース(DB)を簡単に操作できるようにするライブラリ」になります。

この記事では、自分用によく使うコマンドや、その概要を説明します。

全体の流れ

見出し 詳細
インストールと初期化 Sequelize・データベース導入とフォルダのセットアップ
DBの作成と消去 (db:create)
モデルの作成 (db:model) DBのひな型の作成
マイグレーション (db:migrate) DBの変更を管理するファイルの作成・更新
初期データの挿入 (db:seed) seederによるテスト用データの挿入

想定環境

  • Docker
  • MySQL
  • Node.js
  • Sequelize

インストールと初期化

Sequelizeを使用する前に必要になるセットアップを一通り説明します。

ライブラリのインストール

Sequelizeを使用するうえで必要になるライブラリをインストールします。

bash
npm install sequelize sequelize-cli mysql2

フォルダのセットアップ

initコマンドを入力すると、カレントディレクトリに必要なフォルダ一式(config・migrations・models・seeders)が作成されます。

bash
sequelize init

データベースとの接続

(執筆中)

DBの作成と消去

DBの作成

createコマンドを使用します。

bash
sequelize db:create

DBの消去

dropコマンドを使用します。

bash
sequelize db:drop

モデルの作成

DB内でのデータの構造を定義したものを「モデル(model)」と呼びますが、ここではモデルの作成方法を説明します。

テンプレートの作成

model:createコマンドを使用すると、テンプレートから簡単にモデルのファイル作成を行うことができます。
ここでは、モデル名を「User」とし、文字列型の「user_str」と数値型の「user_int」という属性(attribute)を設定しました。

bash
sequelize model:create --name User --attributes user_str:string,user_int:integer

モデル名にはUpper camel caseの名詞複数形、属性にはsnake caseの使用をオススメします。

引数attributesの間に空白を入れるとエラーになります。
ex) --attributes user_str:string, user_int:integer

モデルファイルの編集

上記で作成したモデルのファイルを編集します。
(執筆中)

マイグレーション

モデルファイルから、DBの変更を管理する「マイグレーションファイル」を作成します。
マイグレーションを行うことで、DBの一貫性を保ちながら内部の変更ができるようになります。

bash
sequelize db:migrate

バージョンを戻す場合はundoコマンドを使用します。

bash
sequelize db:migrate:undo      # 一つ前に戻る
sequelize db:migrate:undo:all  # 全てやり直す

初期データの挿入

Sequelizeには、テスト用にサンプルのデータを追加できる「シーディング」という機能があります。
ここでは、シーディングのやり方を説明します。

シードファイルの作成

以下のコマンドを実行することでサンプルデータを登録するシード(seed)ファイルを作成します。
ここでは、ファイル名をtest-usersと指定しました。

bash
sequelize seed:generate --name test-users

シードファイルの編集

(執筆中)

シードデータの挿入

用意したシードファイルを使用して、DBにデータを挿入します。

bash
sequelize db:seed:all

やり直す場合はundoコマンドを使用します。

bash
sequelize db:seed:undo      # 一つ前に戻る
sequelize db:seed:undo:all  # 全てやり直す

おわりに

この記事では、Sequelizeのよく使うコマンドや、その概要を説明しました。
執筆中と書かれている箇所については、後で追記する予定です。その他も必要に応じて書き足すかもしれません。

参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1