Sequelizeのセットアップと簡単なコード

npm install

$ npm init
$ npm install sequelize mysql2 sequelize-cli

初期設定

$ ./node_modules/sequelize-cli/lib/sequelize init
  • config
  • migrations
  • models
  • seeders

というディレクトリが作成されます

DB接続設定

config/config.json

にDBの接続設定を記入します。

この時"timezone": "+09:00"のようにタイムゾーンを指定しておくと指定したタイムゾーンで保存されます。

データベース作成

$ ./node_modules/sequelize-cli/lib/sequelize db:create

これでデータベースが作成されているはずです。

モデルを作成

$ ./node_modules/sequelize-cli/lib/sequelize model:create --name User --attributes name:string

これを実行するとモデル定義ファイルと、マイグレーションファイルが生成されます。

  • models/user.js
  • migrations/20180507101537-User.js

テーブルを作成

$ ./node_modules/sequelize-cli/lib/sequelize db:migrate

実行するとこのようなログが出てテーブルが作成されます。

== 20180507101537-create-user: migrating =======
== 20180507101537-create-user: migrated (0.075s)

使い方

ファイル名は何でも良いですがapp.jsというファイルにこんな感じで記入します。

'use strict';

const db = require('./models/index');  // ./models/index.jsにモデルファイルを一気に読み込んでくれるコードが書かれている

db.User.create({
  name: 'habu'
}).then(()=>{
  db.sequelize.close(); // 最後データベースとの接続を切らないとアプリケーションが終了しない
})

実行する

$ node app.js

実行するとUsersテーブルにレコードが入っているはずです。

mysql> SELECT * FROM Users;
+----+------+---------------------+---------------------+
| id | name | createdAt           | updatedAt           |
+----+------+---------------------+---------------------+
|  1 | habu | 2018-05-07 19:31:00 | 2018-05-07 19:31:00 |
+----+------+---------------------+---------------------+
1 row in set (0.00 sec)