はじめに
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を使用するうえで必要になるライブラリをインストールします。
npm install sequelize sequelize-cli mysql2
フォルダのセットアップ
initコマンドを入力すると、カレントディレクトリに必要なフォルダ一式(config・migrations・models・seeders)が作成されます。
sequelize init
データベースとの接続
(執筆中)
DBの作成と消去
DBの作成
createコマンドを使用します。
sequelize db:create
DBの消去
dropコマンドを使用します。
sequelize db:drop
モデルの作成
DB内でのデータの構造を定義したものを「モデル(model)」と呼びますが、ここではモデルの作成方法を説明します。
テンプレートの作成
model:createコマンドを使用すると、テンプレートから簡単にモデルのファイル作成を行うことができます。
ここでは、モデル名を「User」とし、文字列型の「user_str」と数値型の「user_int」という属性(attribute)を設定しました。
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の一貫性を保ちながら内部の変更ができるようになります。
sequelize db:migrate
バージョンを戻す場合はundoコマンドを使用します。
sequelize db:migrate:undo # 一つ前に戻る
sequelize db:migrate:undo:all # 全てやり直す
初期データの挿入
Sequelizeには、テスト用にサンプルのデータを追加できる「シーディング」という機能があります。
ここでは、シーディングのやり方を説明します。
シードファイルの作成
以下のコマンドを実行することでサンプルデータを登録するシード(seed)ファイルを作成します。
ここでは、ファイル名をtest-usersと指定しました。
sequelize seed:generate --name test-users
シードファイルの編集
(執筆中)
シードデータの挿入
用意したシードファイルを使用して、DBにデータを挿入します。
sequelize db:seed:all
やり直す場合はundoコマンドを使用します。
sequelize db:seed:undo # 一つ前に戻る
sequelize db:seed:undo:all # 全てやり直す
おわりに
この記事では、Sequelizeのよく使うコマンドや、その概要を説明しました。
執筆中と書かれている箇所については、後で追記する予定です。その他も必要に応じて書き足すかもしれません。
参考文献