5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL + Sequelize コマンド メモ

Last updated at Posted at 2019-03-31

MySQL

ログイン

mysql -u root -p

DBを確認し、選択

show databases;
use [database名];

テーブルを確認し、テーブルのカラムを確認

show tables;
show columns from [table名];

テーブルにデータを作成

INSERT INTO [table名] (col_name1, col_name2, ...)
  VALUES (value1, value2, ...);

INSERT INTO [table名] VALUES (value1, value2, ...);  // 全てのカラムを使用する場合、カラム名を省略できる

テーブルを削除

DROP TABLE [table名];

データを削除

DELETE FROM [table名] WHERE id = 10;

テーブルの中身を確認

select * from [table名]

Sequelize-cli

インストール

npm install --save sequelize
npm install --save sequelize-cli

初期化

node_modules/.bin/sequelize init

config, models, migrations, seedersディレクトリが作成される。
config/config.jsonにMySQLで作成したDB情報、ユーザ情報を記入する。

モデル作成

node_modules/.bin/sequelize model:create --name users --underscored --attributes name:string,email:string

config, models, seedersディレクトリがあるフォルダで行うこと
このコマンドでmigrationsフォルダにファイルが作成される

モデル名はデフォルトで複数形にされるので、複数形で書くこと。

MySQLに反映

node_modules/.bin/sequelize db:migrate --env development

MySQLでテーブルを確認すること。usersテーブルがあれば良い。

カラムの追加、削除

../node_modules/.bin/sequelize migration:generate --name [table名]

migrationファイルに書く
before, after はカラムの場所を指定できる。
promiseにしないといけない

'use strict';

module.exports = {
  up: function (queryInterface, Sequelize) {
    return (
      queryInterface.addColumn('users', 'email', {
        type: Sequelize.STRING,
      }))
    .then(()=>{
      queryInterface.addColumn('users', 'prefecture_code', {
        type: Sequelize.INTEGER,
        allowNull: false,
        defaultValue: 0,
        after: 'email' // PostgreSQLでは無効なオプションです
      })
    })
  },

  down: function (queryInterface, Sequelize) {
    return (
      queryInterface.removeColumn('users', 'email')
    ).then(()=>{
      queryInterface.removeColumn('users', 'prefecture_code')
    })
  }
};

migration実行(変更の適用とやり直し)

node_modules/.bin/sequelize db:migrate --env development
node_modules/.bin/sequelize db:migrate:undo --env development

アソシエーション、リレーション

参考

https://qiita.com/cobot00/items/0bc0da1095e09bcd0d5f
http://vistylee.com/sequelize/
https://polidog.jp/2015/12/19/sequelizejs/
⬇︎アソシエーションでとても参考になる
https://blog.kozakana.net/2018/03/sequelize_hasmany/
https://pepese.github.io/blog/express-rdb-sequelize/

sequelize

create



アソシエーション




5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?