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)