Flyway可重复脚本抛出表不存在错误

Bee*_*eez 0 java postgresql flyway

我目前正在尝试将我的版本化脚本精简为一个基线脚本(我们不支付flyway费用,所以很痛苦)。因此,我删除了我的模式并尝试运行我的一个大脚本,其中包含我所拥有的一切。我从 DBeaver 客户端导出了 DDL。但是,当启动我的应用程序时,我收到此错误:

SQL State  : 42P01
Error Code : 0
Message    : ERROR: relation schema-name.my_table_name does not exist
  Position: 13
Location   : db/migration/aaa/R__01_my_script_name.sql 
Line       : 3
Statement  : DELETE FROM "schema-name.my_table_name" WHERE field_name = 'blah' OR field_name = 'blah2'
Run Code Online (Sandbox Code Playgroud)

我相信此错误是因为可重复脚本在版本控制之前运行,而版本控制脚本是创建所有表的原因。据我了解,flyway 最后运行可重复脚本。我是否缺少某种财产或其他什么?这是我的目录结构:

db
 --> migration
     --> my client
       -->R__01_repeatable.sql
       -->V__01_baseline.sql
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请告诉我这里是我的飞行路线属性

  flyway:
    locations: classpath:/db/migration/shared,classpath:/db/migration/${app.client}
    baseline-on-migrate: true
    base_line_version: 1
    placeholders:
      schema-name: ${spring.jpa.properties.hibernate.default_schema}
    schemas: ${spring.jpa.properties.hibernate.default_schema}
    enabled: true
Run Code Online (Sandbox Code Playgroud)

Doo*_*nts 5

查看您的脚本,您的V脚本命名不正确

命名约定记录在此处

特别是,脚本中版本号后面需要出现双下划线V,所以正确的名称是V01__baseline.sql

可重复迁移在版本化迁移之后运行,因此一旦正确检测到版本化迁移,这应该可以解决问题