andyg2 opened a new issue, #2206:
URL: https://github.com/apache/hertzbeat/issues/2206

   ### Is there an existing issue for this?
   
   - [X] I have searched the existing issues
   
   ### Current Behavior
   
   Upon running `docker compose up -d` I'm getting an error in 
'compose-hertzbeat' stating there's multiple migration files. 
   
   > 
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/h2/V160__update_column.sql
 (SQL)
   > 
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/mysql/V160__update_column.sql
 (SQL)
   
   Despite my best efforts to locate these I haven't been able to find them or 
experiment with removing one of them.
   
   ### Expected Behavior
   
   Hertzbeat handles the multiple files gracefully, or improved documentation 
for remediation.
   
   ### Steps To Reproduce
   
   
   1. Put mysql connector `mysql-connector-java-8.0.25.jar` into ./ext-lib
   2. Create a volume `./ext-lib:/opt/hertzbeat/ext-lib`
   3. Remove docker container and image
   4. run `docker compose up -d`
   
   
   ### Environment
   
   ```markdown
   HertzBeat version(s): 1.6.0
   Windows 10 Pro Version 22H2 (19045.4529)
   Docker Desktop 4.31.1 (153621) (newest version available)
   ```
   
   
   ### Debug logs
   
   ```text
   2024-07-04 22:25:27.143 [main] ERROR 
org.springframework.boot.SpringApplication Line:851 - Application run failed
   org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'flywayInitializer' defined in class path resource 
[org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]:
 Found more than one migration with version 160
   Offenders:
   -> 
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/h2/V160__update_column.sql
 (SQL)
   -> 
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/mysql/V160__update_column.sql
 (SQL)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:312)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
        at 
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1231)
        at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
        at 
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
        at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
        at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
        at org.apache.hertzbeat.manager.Manager.main(Manager.java:44)
   Caused by: org.flywaydb.core.api.FlywayException: Found more than one 
migration with version 160
   Offenders:
   -> 
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/h2/V160__update_column.sql
 (SQL)
   -> 
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/mysql/V160__update_column.sql
 (SQL)
        at 
org.flywaydb.core.internal.resolver.CompositeMigrationResolver.checkForIncompatibilities(CompositeMigrationResolver.java:94)
        at 
org.flywaydb.core.internal.resolver.CompositeMigrationResolver.doFindAvailableMigrations(CompositeMigrationResolver.java:127)
        at 
org.flywaydb.core.internal.resolver.CompositeMigrationResolver.resolveMigrations(CompositeMigrationResolver.java:114)
        at 
org.flywaydb.core.internal.resolver.CompositeMigrationResolver.resolveMigrations(CompositeMigrationResolver.java:120)
        at 
org.flywaydb.core.internal.info.MigrationInfoServiceImpl.refresh(MigrationInfoServiceImpl.java:86)
        at 
org.flywaydb.core.internal.command.DbValidate.lambda$validate$0(DbValidate.java:112)
        at 
org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.java:59)
        at 
org.flywaydb.core.internal.command.DbValidate.validate(DbValidate.java:105)
        at org.flywaydb.core.Flyway.doValidate(Flyway.java:418)
        at org.flywaydb.core.Flyway.lambda$migrate$0(Flyway.java:162)
        at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:209)
        at org.flywaydb.core.Flyway.migrate(Flyway.java:151)
        at 
org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
        ... 18 common frames omitted
   ```
   
   ### Anything else?
   
   
   
![image](https://github.com/apache/hertzbeat/assets/1462766/4f0d9f34-c0b5-4a3d-bd50-5d6dac18305f)
   
   
   ```yml
   version: "3.7"
   
   networks:
     hertzbeat:
       driver: bridge
   
   services:
     mysql:
       image: mysql:8
       container_name: compose-mysql
       hostname: mysql
       restart: always
       healthcheck:
         test: ['CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 --silent']
         interval: 3s
         retries: 5
         start_period: 3m
       ports:
         - "3306"
       environment:
         TZ: Asia/Shanghai
         MYSQL_ROOT_PASSWORD: 123456
       volumes:
         - ./dbdata/mysqldata:/var/lib/mysql/
         - ./conf/sql:/docker-entrypoint-initdb.d/
       networks:
         - hertzbeat
   
     victoria-metrics:
       image: victoriametrics/victoria-metrics:v1.95.1
       container_name: compose-victoria-metrics
       hostname: victoria-metrics
       restart: always
       healthcheck:
         test: ["CMD", "wget", "-q", "-O", "-", 
"http://victoria-metrics:8428/-/healthy";]
         interval: 10s
         retries: 5
         timeout: 5s
         start_period: 30s
       environment:
         TZ: Asia/Shanghai
       ports:
         - "8428"
       volumes:
         - ./dbdata/tsdbdata:/victoria-metrics-data
       networks:
         - hertzbeat
   
     hertzbeat:
       image: tancloud/hertzbeat
       container_name: compose-hertzbeat
       hostname: hertzbeat
       restart: always
       environment:
         TZ: Asia/Shanghai
         LANG: zh_CN.UTF-8
       depends_on:
         mysql:
           condition: service_healthy
         victoria-metrics:
           condition: service_healthy
       volumes:
         - ./ext-lib:/opt/hertzbeat/ext-lib
         - ./conf/application.yml:/opt/hertzbeat/config/application.yml
         - ./conf/sureness.yml:/opt/hertzbeat/config/sureness.yml
         - ./log:/opt/hertzbeat/logs
         - 
./conf/enable-mysql-native-password.cnf:/etc/mysql/conf.d/enable-mysql-native-password.cnf
       ports:
         - "1157:1157"
         - "1158:1158"
       networks:
         - hertzbeat
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to