当前位置: 首页 > 知识库问答 >
问题:

Flyway无法在java spring中设置模式?

裴昕
2023-03-14

我的问题是,我无法从flyway javaspring执行迁移,即使检测到迁移文件,并且相同的迁移文件可以从cmd运行。

我已经尝试设置我在互联网上找到的所有可能有用的参数来配置架构,但它仍然停留在“PUBLIC”。

首先,问题如下:(来自JavaSpring的日志)

"2019-07-01 15:06:04.296  INFO 296 --- [           main] o.f.core.internal.command.DbMigrate      : Current version of schema "PUBLIC": << Empty Schema >>
2019-07-01 15:06:04.297  INFO 296 --- [           main] o.f.core.internal.command.DbMigrate      : Migrating schema "PUBLIC" to version 1 - Create person table
2019-07-01 15:06:04.324  INFO 296 --- [           main] o.f.core.internal.command.DbMigrate      : Migrating schema "PUBLIC" to version 2 - Add people
2019-07-01 15:06:04.339  INFO 296 --- [           main] o.f.core.internal.command.DbMigrate      : Migrating schema "PUBLIC" to version 3 - Add people2
2019-07-01 15:06:04.356  INFO 296 --- [           main] o.f.core.internal.command.DbMigrate      : Successfully applied 3 migrations to schema "PUBLIC" (execution time 00:00.094s)"

该表称为公共表,我也无法从 mysql 工作台上看到它。

但如果我使用flyway migrate从命令行执行此操作,它会改变名为td的模式,这是我的意图:

"Migrating schema `td` to version 1 - Create person table
Migrating schema `td` to version 2 - Add people
Successfully applied 2 migrations to schema `td` (execution time 00:00.207s)"

Java 的飞行方式配置:

public static void main(String[] args) {
    Flyway flyway = new Flyway();
    flyway.setBaselineOnMigrate(true);
    flyway.migrate();
    SpringApplication.run(TimeReportApplication.class, args);
}

应用程序属性:

flyway.user=root
flyway.password=root
flyway.url=jdbc:mysql://localhost:3306/td
flyway.schemas=TD

命令行的工作飞行道配置:

flyway.url=jdbc:mysql://localhost:3306/td
flyway.user=root
flyway.password=root

你有什么建议吗?

共有1个答案

诸葛嘉熙
2023-03-14

因此,经过一天的尝试,我找到了解决方案

>

  • 您必须将“Datasource”添加到初始化文件中。这将由Spring从您的应用程序中自动配置。属性文件,必须放在src/main/resources中:

    公共类TimeReportApplication{

    @Autowired
    static DataSource dataSource;
    
    public static void main(String[] args) {
        PrintLog.print("Server started");
        System.out.println("Server started");
        Flyway flyway = new Flyway();
        flyway.clean();
        flyway.setDataSource(dataSource);
        flyway.setSqlMigrationPrefix("V");
        flyway.setBaselineOnMigrate(true);
        flyway.migrate();
        SpringApplication.run(TimeReportApplication.class, args);
    }
    

    }

    在您的应用程序属性文件中,在每个参数“Spring”之前写入,例如:Spring。

  •  类似资料:
    • 我尝试对一个包含restclient的服务进行一个简单的测试。看来我没有成功地模仿。看起来代码得到的是真实数据,而不是模拟数据。任何人都可以帮我。 服务本身将如下所示:

    • 设置数据类型时: 我得到以下错误:名称“complexType”不存在于名称空间“http://www.w3.org/2001/XMLSchema”中

    • maven插件的pom.xml设置是 运行mvn clean install时,我收到以下错误 我错过了什么?我尝试了一些更改,比如添加baselineOnMigrate,但没有效果。

    • 问题内容: 我正在创建一个简单的聊天应用程序,在其中我通过axios对数据库进行api调用,该API返回了一系列消息对象。我可以在componentWillMount中进行axios调用时获取数据。然后,我试图设置状态以显示对话。这是代码: 我看过一些有关生命周期功能和设置状态的帖子,似乎我在做正确的事情。 再次强调,axios调用正常,设置状态不正常。我仍然看到一个空数组。提前致谢! 编辑:这是

    • 我正在尝试创建新的Android项目-