【问题标题】:hibernate does not create schema on an empty databsehibernate 不在空数据库上创建模式
【发布时间】:2021-05-02 20:12:10
【问题描述】:

我有以下 hibernate.cfg.xml 文件

问题是,当我运行迁移时,没有在数据库中创建架构。我想从头开始创建架构。它只生成 script.sql 文件。

这是我的主应用程序文件

public class DatabaseMigration {


    public static void main(String[] args){

        StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("/META-INF/hibernate.cfg.xml").build();
        Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build();

        SchemaExport schemaExport = new SchemaExport();
        schemaExport.setHaltOnError(true);
        schemaExport.setFormat(true);
        schemaExport.setDelimiter(";");
        schemaExport.setOutputFile("db-schema.sql");
        schemaExport.createOnly(EnumSet.of(TargetType.SCRIPT), meta);
}
}

【问题讨论】:

  • “当我运行迁移” - 你到底做了什么?你跑了什么代码?

标签: java mysql spring-boot hibernate hibernate-mapping


【解决方案1】:

谢谢各位,我发现了错误。

schemaExport.createOnly(EnumSet.of(TargetType.SCRIPT), meta);是问题

目标仅指定 SCRIPT。

我已经用 DATABASE 替换了它,它可以工作。

【讨论】:

  • 选择这个作为接受的答案,所以它显示为已解决。
【解决方案2】:

如果你使用的是spring boot,你可以完全放弃hibernate.cfg文件,直接进入resources > application.properties文件,把这一行移到文件中:

spring.jpa.hibernate.ddl-auto=create

Hibernate 应该在您每次重新启动应用程序时重新创建架构。

【讨论】:

  • 我没有使用弹簧靴。它是一个独立的应用程序。
猜你喜欢
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 2013-03-02
  • 2013-05-14
  • 1970-01-01
  • 2017-08-18
  • 2016-08-11
相关资源
最近更新 更多