代码之家  ›  专栏  ›  技术社区  ›  Raymond Chenon

播放2.6演进数据库更改未应用

  •  1
  • Raymond Chenon  · 技术社区  · 6 年前

    我的项目最近从2.5版更新到2.6.13版。 我添加了一个新的脚本16.sql,但更改没有应用于表中 游戏演进

    根据 documentation 2.6 ,的 EvolutionsComponents 如果使用编译时DI,则必须注入。但是guice是运行时DI,所以我不需要注入任何组件。

    我使进化在 build.sbt

    libraryDependencies ++= Seq(evolutions, jdbc)
    

    在application.conf中

    play.evolutions.enabled=true
    play.evolutions.autoApply=true
    

    我的项目缺少什么?欢迎使用任何Git示例

    1 回复  |  直到 6 年前
        1
  •  0
  •   Raymond Chenon    6 年前

    我通过以下方式解决了它 the documentation 升级到2.6以后

    这是我的密码

    import play.api.ApplicationLoader.Context
    import play.api.{Application, ApplicationLoader, BuiltInComponentsFromContext}
    import play.api.db.{DBComponents, HikariCPComponents}
    import play.api.db.evolutions.EvolutionsComponents
    import play.api.routing.Router
    import play.filters.HttpFiltersComponents
    import router.Routes
    
    class MyApplicationLoader extends ApplicationLoader {
    
      def load(context: ApplicationLoader.Context): Application = {
        new AppComponents(context).application
      }
    }
    
    class AppComponents(context: Context)
        extends BuiltInComponentsFromContext(context)
        with DBComponents
        with EvolutionsComponents
        with HikariCPComponents
        with HttpFiltersComponents {
      // this will actually run the database migrations on startup
      applicationEvolutions
    
      //  val prefix: String = "/"
      lazy val router = Router.empty
      //  lazy val router: Router = bind(classOf[Routes]).to(classOf[Routes])
    
    }
    

    在conf/application.conf中添加这一行

    play.application.loader=MyApplicationLoader