Node.js/Express
DB - sequelize-cli : DB-update
jm_p_op
2024. 4. 14. 21:52
module.exports = {
async up (queryInterface, Sequelize) {
await Promise.all([
queryInterface.addColumn("Users","test3",{
type: Sequelize.STRING
}),
queryInterface.addColumn("Users","test4",{
type: Sequelize.STRING})])
}
}
- Promise.all([행동1,행동2,...]) - 행동1,행동2.. 실행, 여러개 변동시 사용
- queryInterface.renameColumn('table','before_column','after_column') : 칼럼명 변동
- queryInterface.addColumn('table','column',{조건}) : 조건을 만족하는 칼럼 추가
- queryInterface.changeColumn('table','column',{조건},{Transaction}) : 칼럼 조건 변동
- 조건 - type:'INTEGER USING CAST("test3" as INTEGER)' : string 을 int로 바꿀때 사용
- queryInterface.sequelize.query('쿼리문') : 쿼리문으로 실행
allowNull: true -> false
'use strict';
const { Query } = require('pg');
const { Transaction, QueryTypes } = require('sequelize');
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up (queryInterface, Sequelize) {
return Promise.all([queryInterface.sequelize.query(`
UPDATE public."Users"
SET test1 = ''
WHERE test1 is null;
`),
queryInterface.changeColumn('Users','test1',{
defaultValue:"메롱",
allowNull:false,
type:Sequelize.STRING},{Transaction}
)
])
}
}