본문 바로가기
개발

[SQL] Database 정보를 git에 올라가지 않게 하기

by 마스터누누 2017. 4. 19.
728x90
반응형

Database 정보를 git에 올라가지 않게 하기




데이터베이스 정보가 노출될 경우 손쉽게 정보들을 가져갈수 있게 된다.

따라서 git에 정보를 올리지 않고 별도로 관리가 필요하다.


또한 팀 프로젝트때 로컬에서 데이터베이스를 사용할 경우

테이블과 값이 같다고 하더라도 각자 데이터베이스의 정보가 다르므로

이를 분리하여 관리하는게 좋다.


예제는 Node JS 기준으로 설명한다.




1
2
3
4
5
6
{
  "HOST":"localhost",
  "user":"root",
  "password":"1234"
}
 
cs


우선 JSON 파일을 하나 만든다.

이 파일 안에 데이터베이스와 관련된 정보를 저장한다.

파일의 이름은 config.json으로 한다.

다른 이름으로 해도 상관은 없는데, gitignore에서 등록할때 동일하게만 설정해 주면된다.


이 후에 git 레파지토리가 있는 최상단의 루트로 올라가서 gitignore에 config.json을 등록해준다.

만약 gitignore파일이 없다면 텍스트 에디터나 vim을 통해 .gitignore 파일을 만들어준다.

등록할때는 특별한것 없이 그냥 gitignore파일 내부에 config.json이라고 적어주면

자동으로 git add 에서 제외된다.




1
2
3
4
5
var fs = require('fs'),
configPath = __dirname + '/config.json';
var parsed = JSON.parse(fs.readFileSync(configPath, 'UTF-8'));
exports.storageConfig =  parsed;
 
cs


다시 node로 돌아와서 option.js 파일을 생성해준다.

여기서 파일 시스템 모듈인 fs를 통해 방금전에 만든 json 파일을 불러온다.

불러온 파일을 JSON.parse하여 객체에 넣어주고

이 객체를 외부로 export시킨다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var options = require('./option');
 
var loginData = {
        host: options.storageConfig.HOST,
        user: options.storageConfig.user,
        password: options.storageConfig.password
};
 
var mysql = require('mysql');
var connection = mysql.createConnection({
  host: loginData.host,
  port:3306,
  user:loginData.user,
  password:loginData.password,
  database:'octodog'
})
connection.connect();
cs


방금 export 된 option 파일을 require시킨다.

option 파일 내부에 있는 데이터들을 객체화 시키기 위해서, loginData라는 객체에 옮겨담는다.


이제, mysql에 접속하기 위해서 loginData에 있는 값들을 차례차례 적어주면 된다.


반응형

댓글