Testing 在测试环境中应用play框架演化

Testing 在测试环境中应用play框架演化,testing,playframework-2.3,playframework-evolutions,Testing,Playframework 2.3,Playframework Evolutions,我将按照以下方式设置我的游戏框架jpa: 在application.conf中: db.default.driver=org.h2.Driver db.default.url="jdbc:h2:mem:play" db.default.user=sa db.default.password="" applyEvolutions.default=true db.default.jndiName=DefaultDS jpa.default=defaultPersistenceUnit persis

我将按照以下方式设置我的游戏框架jpa:

在application.conf中:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user=sa
db.default.password=""
applyEvolutions.default=true
db.default.jndiName=DefaultDS
jpa.default=defaultPersistenceUnit
persistence.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">

    <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>DefaultDS</non-jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>

</persistence>
运行这个项目运行良好,但测试失败,因为缺乏数据库进化

如何在测试环境中启用Play Framework演进


我在您的
应用程序中也使用了hibernate 3.6

强制向下演进

applyDownEvolutions.default=true

如果在生产中使用相同的conf文件,请小心。

尝试将hibernate.hbm2ddl.auto设置为“none”,因此您的演进应该正确应用


我猜hibernate在evolution插件之前“承担控制权”,这会导致问题。您可以尝试修改插件加载顺序(JPAPlugin vs EvolutionPlugin),看看是否有什么不同。

我的问题是Ups部分!没有在测试环境中应用演化是。我刚才很忙。但进化不适用文档中说:“如果在application.conf中配置了数据库并且存在进化脚本,进化将自动激活。您可以通过设置evolutionplugin=disabled来禁用它们。例如,当测试设置自己的数据库时,您可以为测试环境禁用进化。”试着禁用进化插件进行测试。同样的问题,有解决方案吗?
applyDownEvolutions.default=true