2017-11-20 13 views
0

Flyway (flyway-play)를 사용하여 db 마이그레이션을 수행하고 싶습니다.'flyway-play'는 Slick이 연결에 문제가없는 데이터베이스를 찾지/연결하지 않습니다.

Slick을 사용하여 데이터베이스에 연결하는 데 전혀 문제가 없으며 쿼리를 만들고 새 데이터를 삽입하는 등의 문제가 없습니다. 그러나 Flyway에서 작업 할 수 없습니다.

http://localhost:9000/@flyway/postgres 엔드 포인트를 방문하면 database postgres not found이됩니다. 사실 http://localhost:9000/@flyway에 데이터베이스가 발견되지 않았 음을 알 수 있습니다.

마이그레이션을 준비하고이를 conf\db\migration\postgres 폴더에 저장했습니다. 나는 그것을 테스트하지 않은 있지만 이동 경로 플러그인 데이터베이스 구성 될 것으로 예상 것으로 보인다

package database.config 

import javax.inject.{Inject, Singleton} 

import play.api.db.slick.DatabaseConfigProvider 
import play.db.NamedDatabase 
import slick.jdbc.{JdbcProfile, PostgresProfile} 

@Singleton 
final class DatabaseProvider @Inject()(@NamedDatabase("postgres") configProvider: DatabaseConfigProvider) { 
    val dbConfig = configProvider.get[PostgresProfile] 
} 

답변

0

:

slick { 
    dbs { 
    postgres { 
     driver = "slick.driver.PostgresDriver$" 
     db { 
     profile = org.postgresql.Driver 
     url = "jdbc:postgresql://localhost:5432/"${db-name} 
     user = ${db-user} 
     password = ${db-password} 
     connectionPool = disabled 
     keepAliveConnection = true 
     autoCommit = false 
     } 
    } 
    } 
} 

그리고 내 DatabaseProvider :

postgres 데이터베이스의 구성입니다 db.{dbname} 아래에서 default config

다음을 추가 할 수 있습니다. application.conf :

db.default = ${slick.dbs.postgres.db} 
db.default.driver = "org.postgresql.Driver" 
1

@vdebergue 올바른 방향을 가리켜 주셔서 감사합니다. 작동하도록했습니다.

나는 conf\db\migration\default 폴더에 내 내 마이그레이션을 이동 좀 그래서 다음과 같습니다 application.conf을 쥐게 :

db { 
    default = ${slick.dbs.postgres.db} 
    default.migration.locations=["common","postgres"] 
} 

slick { 
    dbs { 
    postgres { 
     driver = "slick.driver.PostgresDriver$" 
     db { 
     profile = org.postgresql.Driver 
     driver = ${slick.dbs.postgres.db.profile} // required for Flyway 
     url = "jdbc:postgresql://localhost:5432/"${db-name} 
     user = ${db-user} 
     password = ${db-password} 
     connectionPool = disabled 
     keepAliveConnection = true 
     autoCommit = false 
     } 
    } 
    } 
}