Sequelize
SQL文を学ぶことは非常に価値があります.でも主にJavascriptを使っています私以外にもSQL文をJavaScriptとして使いたい人もいるかもしれません.
Javascriptで作成するとSQL文に自動的に置き換えられるSequeizeライブラリです.
sequelizeが必要なファイルにsequelizeをインストールします.
config/config.jsonのファイルは次のようになります.
terminalまたはthrowでデータベースを作成すると、データベースはモデルとして保存されます.このモデルはSQLのテーブルに対応しています. npx sequelize-cli --help
モデルがテーブルにデフォルトのフォームを作成した場合、移行は複数のコマンドでテーブルを作成し、テーブルを削除し、要素を追加します.
またはsequelize-cliを使用して新しい移行を作成します.
downセクションには、移行を取り消すコマンドが含まれています.
次のデータが含まれます.
sequelize-cliコマンドは、移行構文をSQL構文に変換し、MySQLに格納します.
Javascriptで作成するとSQL文に自動的に置き換えられるSequeizeライブラリです.
設定
sequelizeが必要なファイルにsequelizeをインストールします.
npx npm install --save sequelize
sequelizeをインストールすると、モデル、移行、構成、およびシードファイルが作成されます.config/config.jsonのファイルは次のようになります.
{
"development": {
"username": mysql 유저이름,
"password": 내 비밀번호,
"database": 내가 쓸 데이터베이스 이름,
"host": 호스트주소,
"dialect": "mysql"
},
....
}
}
sequelize-cliは、jsでSQL文を作成および更新するのに役立ちますので、インストールできます.npm install --save-dev sequelize-cli
コンポーネント
Model
terminalまたはthrowでデータベースを作成すると、データベースはモデルとして保存されます.このモデルはSQLのテーブルに対応しています.
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
このコマンドを使用して、モデルと移行を作成します.
//model
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class User extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
}
};
User.init({
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: DataTypes.STRING
}, {
sequelize,
modelName: 'User',
});
return User;
};
//migrations
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('Users', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
firstName: {
type: Sequelize.STRING
},
lastName: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
},
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('Users');
}
};
migrations
モデルがテーブルにデフォルトのフォームを作成した場合、移行は複数のコマンドでテーブルを作成し、テーブルを削除し、要素を追加します.
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('Users', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
firstName: {
type: Sequelize.STRING
},
lastName: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
},
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('Users');
}
};
上で、createTableでテーブルを作成し、droptableでテーブルを削除します.またはsequelize-cliを使用して新しい移行を作成します.
npx sequelize-cli migration generate --name test
module.exports = {
up: async (queryInterface, Sequelize) =>{
}
,
down : async (queryInterface, Sequelize) => {
}
}
upセクションには、移行時のコマンドが含まれています.downセクションには、移行を取り消すコマンドが含まれています.
次のデータが含まれます.
sequelize-cliコマンドは、移行構文をSQL構文に変換し、MySQLに格納します.
npx sequelize-cli db:migrate
migration 에서 up 부분 실행 및 migrating 실행
npx sequelize-cli db:migrate:undo
migration에서 down부분 실행 및 최근 migration 취소
SQL構文を使用しなくてもjsでvscodeでデータベースを使用できるSequelizeについて理解しました.間違ったところがあれば積極的にコメントしてください!ありがとうございます.Reference
この問題について(Sequelize), 我々は、より多くの情報をここで見つけました https://velog.io/@gkdlvj1214/Sequelizeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol