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
アソシエーション