안녕하세요! 후르륵짭짭입니다.
2020/10/26 - [Vapor - ServerSide] - Vapor) Heroku를 사용해서 웹 사이트를 만들어보자
저번에 Heoroku를 등록하는 것에 대해 배웠는데요!
이번에는 DB랑 Heroku를 연결 시키는 방법에 대해서 알아볼려고 합니다.
itnext.io/deploying-your-vapor-4-app-to-heroku-48b26f9f46cb
일단 이 글을 통해서 많은 도움을 받을 수 있었습니다.
** 시작하기 **
일단 Heroku 사이트에 들어갑니다.
그리고 나서
resources -> 검색에 Postgres를 찾아서 넣어줍니다.
그리고 이렇게 Provision을 눌러줘서 등록을 해줍니다!
이제 부터 본격적인 시작입니다.
heroku config
터미널에 위 명령어를 적어주시면 DATABASE_URL이 나오게 됩니다!
이것이 잘 나온다면 Heroku에 Postgresql이 설치가 잘 된 것입니다.
하지만 위의 내용을 잘라서 config.swift에 넣어주면 보안이 약해지기 때문에 config.swift에
//config.swift
extension Environment {
static var databaseURL: URL {
guard let urlString = Environment.get("DATABASE_URL"), let url = URL(string: urlString) else{
fatalError("Database url no configured")
}
return url
}
}
위와 같이 코드를 작성해주시기 바랍니다.
이렇게 하면 DATABASE_URL에서 정보를 가져오고 자동으로 매핑 시켜줍니다.
//config.swift
try app.databases.use(.postgres(url: Environment.databaseURL), as: .psql)
app.migrations.add(CreateTodo())
if app.environment == .development{
try app.autoMigrate().wait()
}
그리고 config.swift 파일에 위에서 만든 databaseURL을 가져오고 DB 등록을 해줍니다.
그리고 우리가 이전에 migration 했던거 처럼 동일하게 해줍니다.
그리고 개발 상태 일 때는 , migraion이 되지 않기 하기 위해 나머지 코드를 추가해줍니다.
이제 다 끝나갑니다.
이제 터미널에 vim Procfile을 수정 해줄것입니다.
-> vim Procfile
-> release: Run migrate - y
web : Run serve --env production --hostname 0.0.0.0 --port $PORT
이렇게 release를 추가로 적어줍니다.
그리고 나서
git add .
git comment -m "내용"
vapor heraku push
를 해주시면 됩니다!!
그리고 나서
app.post("insert") { (req) -> EventLoopFuture<[Todo]> in
if let title = try? req.content.decode(Todo.self){
let save = title.save(on: req.db)
let temp = save.and(Todo.query(on: req.db).all()).map { (save, read) -> ([Todo]) in
return read
}
return temp
}
return Todo.query(on: req.db).all()
}
이렇게 post를 만들어주시고 postman으로 내용을 전송하시면
정상적으로 내용이 보내진 것을 확인 할 수 있습니다!!
'Server > Vapor - ServerSide' 카테고리의 다른 글
Vapor ) Heroku를 사용하면서 만난 오류들 (0) | 2020.10.27 |
---|---|
Vapor) Heroku를 사용해서 웹 사이트를 만들어보자 (0) | 2020.10.26 |
Vapor ) Vapor과 PostgreSQL을 이용해서 READ를 구현하자! (0) | 2020.10.16 |
Vapor ) Postgresql을 사용해서 DataBase를 구축하자! (0) | 2020.10.13 |
Vapor ) Vapor와 Leaf로 웹 사이트를 만들어보자 2부 (1) | 2020.10.12 |
댓글