-
💧Vapor💧 Heroku MySQL DB 사용하기Programing/Vapor 2020. 5. 11. 03:18
안녕하세요, 5anniversary 입니다!!
이번 시간에는 지난 시간에 이어서 heroku 서버에 MySQL DB를 만들어 사용하는 방법을 알아보는 시간을 가질 거예요.
그렇다면 바로 heroku 대시보드로 들어가야겠죠??
add-ons에서 저희가 사용할 서비스는
JawsDB입니다.
추가를 해주시고 난 이후에
터미널에 heroku config를 작성해주시면
JAWSDB_URL: mysql://z2gsgk267lrbl4yf:j4rki5lrhxyu4gds@ijj1btjwrd3b7932.cbetxkdyhwsb.us-east-1.rds.amazonaws.com:3306/vclhtpt0ysupjjlf
와 같은 환경변수로 설정된 DB정보를 받을 수 있습니다.
JAWSDB_URL: mysql://<username>:<password>@<host>:<port>/<db_name>
와 같이 표현이 되기 때문에 해당하는 DB정보를 config.swift에 작성을 해주시면 되겠죠??
public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws { ...code... var databases = DatabasesConfig() let hostname : String = "ijj1btjwrd3b7932.cbetxkdyhwsb.us-east-1.rds.amazonaws.com" let username : String = "z2gsgk267lrbl4yf" let password : String = "j4rki5lrhxyu4gds" let databaseName: String = "vclhtpt0ysupjjlf" let databaseConfig = MySQLDatabaseConfig( hostname: hostname, port: 3306, username: username, password: password, database: databaseName) ...code... }
그런데 이렇게 작성하게 되면 DB정보가 전부 노출이 되니 서버의 환경변수에 저장해주도록 하면 좋습니다.
heroku config:set DB_HOSTNAME=호스트이름 heroku config:set DB_USERNAME=유저이름 heroku config:set DB_PASSWORD=비밀번호 heroku config:set DB_DBNAME=디비이름 heroku config:set DB_PORT=포트번호
해당 코드로 환경변수에 설정을
public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws { ...code... var databases = DatabasesConfig() let hostname = Environment.get("DB_HOSTNAME") ?? "로컬" let username = Environment.get("DB_USERNAME") ?? "로컬 DB 유저이름" let password = Environment.get("DB_PASSWORD") ?? "로컬 DB 비밀번호" let databaseName = Environment.get("DB_DBNAME") ?? "로컬 DB DB이름" let databaseConfig = MySQLDatabaseConfig( hostname: hostname, port: 3306, username: username, password: password, database: databaseName) ...code... }
config.swift에서 위와 같이 작성을 해주시면 로컬에서는 로컬의 디비를 사용,
서버에 올리게 되면 서버 DB를 사용하는 환경을 가지게 됩니다.
그리고 deploy를 해주시고
이전 포스팅에서 작성되어있던 /users을 작성해 보시면
출력은 되지 않지만 DB가 연결된 것을 확인할 수 있습니다.
다음 시간부터는 지금까지 설정했던 개발환경을 가지고 활용해보는 시간을 가지도록 하겠습니다~!
'Programing > Vapor' 카테고리의 다른 글
[Vapor] Rest API 만들기 - 2 (POST) (0) 2020.05.22 [Vapor] Rest API 만들기 - 1 (0) 2020.05.22 💧Vapor💧 Swift Server, Heroku 배포하기 (6) 2020.05.10 💧Vapor💧 MySQL DB에 연결하기 (0) 2020.05.08 💧Vapor💧 Swift로 서버 구축하기 (1) 2020.04.27