我使用h2db进行测试,使用hibernate自动创建表,但希望flyway在数据库中插入脚本。所以,我的飞行路线没有创建脚本。
首先,我不确定这是否可能。但是当我使用一些插入脚本时,我的测试失败了,因为flyway无法插入记录,抱怨表格不存在。
似乎在h2创建表之前,它就已经在尝试运行脚本了。
我正在使用Spring靴来调用飞行路线。所以,我只需要这个依赖项和一个数据库。类路径中的migaration文件夹以激活飞行路线:
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> </dependency>
任何想法都会很好。
如果你需要更多信息,请告诉我。
如果我在sql文件中添加各种创建脚本,那么它会工作得很好,但我不想写创建脚本。相反,我想依靠hibernate来为我创建它。
谢谢
您是否正在调用Hibernate集成器(组织.Hibernate.集成器.spi.集成器)的飞行方式?
如果是这样,集成器总是在Hibernate模式导出之前执行
正如我所看到的,更改顺序的唯一方法是添加一个会话工厂观察器,然后执行飞行路线迁移
public class FlywayIntegrator implements Integrator {
@Override
public void integrate(Configuration c, SessionFactoryImplementor sfi,
SessionFactoryServiceRegistry sfsr) {
sfi.addObserver( new SessionFactoryObserver() {
@Override
public void sessionFactoryCreated(SessionFactory factory) {
//now, after schema-export, flyway migration...
}
@Override
public void sessionFactoryClosed(SessionFactory factory) {
}
} );
}
//... other methods
}
我正在使用Spring启动,我通过在测试中为飞行方式设置db url来解决它.properties:
spring.datasource.url = jdbc:h2:mem:DBNAME
spring.datasource.username = sa
spring.flyway.url = jdbc:h2:mem:DBNAME
spring.flyway.baseline-on-migrate = true
我用spring boot创建了一个spring网络项目。想了解有关测试的实践。我需要一个内存中的嵌入式数据库,比如hsql或h2,用于具有初始schema.sql的JUnit。在主应用程序上,数据库可以是mysql或oracle 在非spring boot项目中,我们通常会有一个单独的applicationcontext.xml一个由web应用程序引用的应用程序,对于测试,我们会使用applic
似乎我甚至无法运行控制台来创建它试图查找的数据库。同样的事情也发生在我刚刚跑步的时候: 或者从“应用程序”下拉菜单中启动psql: 计算机状态: 我也试图通过自制安装PostgreSql,但我也遇到了同样的问题。我还阅读了应用程序文档页面,其中指出: 当postgres.app首次启动时,它会创建$user数据库,当未指定时,这是psql的默认数据库。默认用户是$user,没有密码。 所以看起来应
一、内存数据库: 在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如: rc = sqlite3_open(":memory:", &db); 在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新的数据库在纯内存中被成功创建了。
问题内容: 我有一个基本的Hibernate代码,我将属性“ hibernate.hbm2ddl.auto”设置为更新,因为它仍然无法在数据库中自动创建表。 这些是必需的文件: employee.hbm.xml liability.hbm.xml hibernate.cfg.xml 这是我尝试运行的Main.java: 这是我得到的错误: com.mysql.jdbc.exceptions.jdb
奇怪的错误。感谢所有帮助。 这是我的数据库。 当我手动创建数据库并尝试使用它们时,例如 ,我收到以下错误: 当我尝试删除数据库时,我收到以下错误: 如果我尝试使用<code>rake db:create:all</code>创建数据库,我会得到以下错误: 看来我的数据库。yml还可以。但出于某种原因,它正在寻找一个名为postgres的数据库,而我的数据库中没有这个数据库。yml。 感谢任何帮助。
问题内容: 我有一个带有URL的H2数据库。我使用创建表格;。然后,我使用从(空)表中选择所有内容。到目前为止,一切都很好。 但是,如果将URL更改为,唯一的区别是数据库现在仅在内存中,这给了我一个提示。我可能在这里缺少一些简单的东西,但是任何帮助将不胜感激。 问题答案: hbm2ddl在创建表后关闭连接,因此h2放弃该连接。 如果你的连接网址是这样配置的 在最后一个连接关闭时,数据库的内容会丢失