코딩기록

15일차(수)- sequelize (강제업뎃, .env, ) 본문

카테고리 없음

15일차(수)- sequelize (강제업뎃, .env, )

뽀짝코딩 2022. 6. 22. 16:16
728x90

node sequelize db 연결 및 강제 업데이트

 app.js 

// index.js에 있는 db.sequelize 객체 모듈을 구조분해로 불러온다.
const { sequelize } = require('./models');


// force: 서버 실행마다 테이블을 재생성 할 것인지 아닌지
// force: true는 모델을 수정하면, 이를 db에 반영하기 위한 옵션이다.
// 단, 테이블을 지웠다 다시 생성하는 거라서 기존 데이터가 날아간다. 주로 force: false 설정.
// 따라서, alter: true 옵션을 통해 기존 데이터를 유지하면서 테이블을 업테이트 할수있다.
// 다만, 필드를 새로 추가할때 필드가 not null이면 제약조건에따라 오류가 나는 등 대처를 해야 한다.
// 기존 테이블 칼럼 변경 force, 새 테이블 alter.
sequelize
  .sync({ alter: true })
  .then(() => {
    console.log(`
    🐣 🐣 🐣 🐣 🐣 🐣 🐣
    🐤 안 녕 🐤 디 비 🐤
    🐥 🐥 🐥 🐥 🐥 🐥 🐥
    `);
  })
  .catch((err) => {
    console.error(err);
  });

항상 force:false로 설정했다가 다른 블로거가 alter:true로 설정한 걸 보고 정리했다.

콘솔 로그에 찍히는 양식은 전기수 코드보다 귀여워서 가져왔다 덕분에 이걸 자주 쓴다.

 

 

 

 

node sequelize .env 환경변수 설정

sequelize init을 하면 자동적으로 1. /config/config.json    2. models/index.js    3. Migrations    4. Seeders

파일이 생성된다. 여기서 .env 환경변수 세팅하려면 다음 3개 파일을 변경한다.  

1. /config/config.json  ( 확장자 및 코드 변경 )   

 /config/config.json -> /config/config.js

 

2. models/index.js   ( 코드 변경  

 

3. .env 

 

 

 

 

 config.js 

require('dotenv').config();
const env = process.env;

const development = {
  username: env.SQL_USER,
  password: env.SQL_PASSWORD,
  database: env.SQL_DATABASE,
  host: env.SQL_HOST,
  dialect: 'mysql',
};
const test = {
  username: env.SQL_USER,
  password: env.SQL_PASSWORD,
  database: env.SQL_DATABASE,
  host: env.SQL_HOST,
  dialect: 'mysql',
};

const production = {
  username: env.SQL_USER,
  password: env.SQL_PASSWORD,
  database: env.SQL_DATABASE,
  host: env.SQL_HOST,
  dialect: 'mysql',
};

module.exports = { development, test, production };

 index.js 

//변경 전
const config = require(__dirname + '/../config/config.json')[env];

//변경 후
const config = require(__dirname + '/../config/config.js')[env];

index.js는 확장자만 json -> js 변경하면 끝.

 

 .env 

SQL_PORT=3000
SQL_USER=보통은root
SQL_PASSWORD=비번
SQL_DATABASE=내가_원하는_디비_이름_적기
SQL_HOST=127.0.0.1

.env 파일은 절대 띄어쓰기가 안 된다. 항상 언더바_  로 띄어쓰기를 표현해야 한다.

.gitignore파일에 node_modeuls, .env, config  빼먹지 말것!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고
* sequelize- .env 환경변수 설정
https://velog.io/@hyunju-song/sequelize%EB%A1%9C-DB%EC%85%8B%ED%8C%85%ED%95%A0-%EB%95%8C-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0



 

반응형
Comments