Comments
9 comments
-
Hello vifeng welcome!
I've tweaked your output to be a little easier to read.
Configplugins { id("java") id("org.springframework.boot") version "3.2.5" id("io.spring.dependency-management") version "1.1.4" id("org.asciidoctor.jvm.convert") version "3.3.2" id("com.diffplug.spotless") version "6.25.0" id("org.flywaydb.flyway") version "10.11.1" } dependencyManagement { imports { mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES) } } group = "com.vf" version = "0.0.1-SNAPSHOT" java { sourceCompatibility = JavaVersion.VERSION_17 } springBoot { mainClass.set("com.vf.eventhubserver.EventhubServerApplication") } configurations { compileOnly { extendsFrom(configurations.annotationProcessor.get()) } } repositories { mavenCentral() maven { url = uri("https://download.red-gate.com/maven/release") } } buildscript { repositories { mavenCentral() } dependencies { classpath("org.flywaydb:flyway-mysql:10.11.1") } } val snippetsDir by extra { file("build/generated-snippets") } val asciidoctorExt by configurations.creating dependencies { implementation(platform("com.google.cloud:spring-cloud-gcp-dependencies:4.1.4")) implementation("com.google.cloud:spring-cloud-gcp-starter-sql-mysql") implementation("com.google.cloud:google-cloud-secretmanager") implementation ("mysql:mysql-connector-java:8.0.31") implementation("org.flywaydb:flyway-core:10.11.1") implementation ("com.google.code.findbugs:jsr305:3.0.2") implementation("org.springframework.data:spring-data-rest-hal-explorer") asciidoctorExt("org.springframework.restdocs:spring-restdocs-asciidoctor") implementation("org.springframework.boot:spring-boot-starter-actuator") implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-webflux") implementation("org.springframework.session:spring-session-core") implementation ("org.mapstruct:mapstruct:1.5.5.Final") annotationProcessor ("org.mapstruct:mapstruct-processor:1.5.5.Final") implementation("org.springframework.boot:spring-boot-devtools") // runtimeOnly("com.h2database:h2") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("io.projectreactor:reactor-test") testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc") testAnnotationProcessor("org.mapstruct:mapstruct-processor:1.5.5.Final") } spotless { java { target("src/**/*.java") googleJavaFormat() removeUnusedImports() } } asciidoctorj { fatalWarnings(listOf(missingIncludes())) } tasks.withType().configureEach{ options.encoding = "UTF-8" } tasks.withType().configureEach{ options.encoding = "UTF-8" } tasks.test { systemProperty("file.encoding", "UTF-8") useJUnitPlatform() outputs.dir(snippetsDir) } tasks.asciidoctor { inputs.dir(snippetsDir) configurations(listOf(asciidoctorExt)) dependsOn("test") attributes(mapOf("snippets" to snippetsDir)) outputOptions{ backends ("html5") } options(mapOf("doctype" to "book")) } tasks.jar { dependsOn("asciidoctor") from ("${snippetsDir}/html5") { into ("static/docs") } } // A custom task to delete all the files and folders generated by Gradle tasks.register("clearAll") { delete("bin") delete (".classpath") delete (".gradle") delete (".nb-gradle") delete (".project") delete (".settings") // delete (".vscode") delete (".DS_Store") delete (".idea") dependsOn(tasks.clean) }
ExceptionApplication 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]: Unsupported Database: MySQL 8.0 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1234) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] at com.vf.eventhubserver.EventhubServerApplication.main(EventhubServerApplication.java:11) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.5.jar:3.2.5] Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 8.0 at org.flywaydb.core.internal.database.DatabaseTypeRegister.lambda$getDatabaseTypeForConnection$7(DatabaseTypeRegister.java:122) ~[flyway-core-10.11.1.jar:na] at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at org.flywaydb.core.internal.database.DatabaseTypeRegister.getDatabaseTypeForConnection(DatabaseTypeRegister.java:122) ~[flyway-core-10.11.1.jar:na] at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.(JdbcConnectionFactory.java:77) ~[flyway-core-10.11.1.jar:na] at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:138) ~[flyway-core-10.11.1.jar:na] at org.flywaydb.core.Flyway.migrate(Flyway.java:151) ~[flyway-core-10.11.1.jar:na] at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.6.jar:6.1.6] ... 23 common frames omitted
The first thing I don't see that I was expecting is there's no flyway MySQL implementation in your build script, I'm anticipating seeingdependencies { implementation "com.redgate.flyway:flyway-mysql" }
(source). -
Hi petter, just saw your comment ! Yes i do have it in the buildscript
buildscript { repositories { mavenCentral() } dependencies { classpath("org.flywaydb:flyway-mysql:10.11.1") }
the reason it's here was a no database error which i speaked about and that i read about here : https://github.com/flyway/flyway/issues/3722 and https://github.com/flyway/flyway/issues/3355 -
Please excuse me, I searched for the enterprise artifact in the output and I've just realised you're using the community edition.
When you say initially that you're using Flyway Community 8.2.1 & Flyway OSS Edition 10.11.1 by Redgate in command line, do you mean you've tried both with similar effects?
I'm a little dubious aboutv8 working with all the other newer tech as an asside. -
Yes Peter same effect for both Flyway Community 8.2.1 & Flyway OSS Edition 10.11.1 by Redgate.
Do you have any recommandation I should try or should I report it as a bug? -
I have reported it as a bug : https://github.com/flyway/flyway/issues/3885
-
Hi - could you try changing the classpath("org.flywaydb:flyway-mysql:10.11.1") to implementation("org.flywaydb:flyway-mysql:10.11.1") please?
-
thank you for your answer. unfortunately, nope.. it didn't work..
here is the code I tried per asked :
```
buildscript {repositories {mavenCentral()}dependencies {// delete classpath("org.flywaydb:flyway-mysql:10.11.1")classpath ("mysql:mysql-connector-java:8.0.31")}}val snippetsDir by extra { file("build/generated-snippets") }val asciidoctorExt by configurations.creatingdependencies {implementation(platform("com.google.cloud:spring-cloud-gcp-dependencies:4.1.4"))implementation("com.google.cloud:spring-cloud-gcp-starter-sql-mysql")implementation("com.google.cloud:google-cloud-secretmanager")implementation("org.flywaydb:flyway-mysql:10.11.1")implementation("org.flywaydb:flyway-core:10.11.1")```
-
Hi - in the original build script you had the mysql:mysql-connector-java:8.0.31 in implementation so I didn't mention it - your later one has moved it to classpath. I believe they all need to be implementation so they are available to the program at runtime
-
ok... but if I do that
buildscript {</code><code>
repositories { mavenCentral() } dependencies { // classpath("org.flywaydb:flyway-mysql:10.11.1") // classpath ("mysql:mysql-connector-java:8.0.31") } } val snippetsDir by extra { file("build/generated-snippets") } val asciidoctorExt by configurations.creating dependencies { implementation(platform("com.google.cloud:spring-cloud-gcp-dependencies:4.1.4")) implementation("com.google.cloud:spring-cloud-gcp-starter-sql-mysql") implementation("com.google.cloud:google-cloud-secretmanager") implementation("mysql:mysql-connector-java:8.0.31") implementation("org.flywaydb:flyway-mysql:10.11.1") implementation("org.flywaydb:flyway-core:10.11.1")
With a do `flyway clean` I have the no database error again as such<div>* What went wrong:</div><div>Execution failed for task ':flywayClean'.</div><div>> Error occurred while executing flywayClean</div><div> No database found to handle </div>
if I dogradle bootRun
now I have this trace : (it's just the end)2024-04-29T17:18:04.979+02:00 ERROR 18732 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exceptio n is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [booking] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1234) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] at com.vf.eventhubserver.EventhubServerApplication.main(EventhubServerApplication.java:11) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.5.jar:3.2.5] Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [booking] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421) ~[spring-orm-6.1.6.jar:6.1.6] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.6.jar:6.1.6] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.6.jar:6.1.6] ... 21 common frames omitted Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [booking] at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateTable(AbstractSchemaValidator.java:134) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.tool.schema.internal.GroupedSchemaValidatorImpl.validateTables(GroupedSchemaValidatorImpl.java:46) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.tool.schema.internal.AbstractSchemaValidator.performValidation(AbstractSchemaValidator.java:97) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.tool.schema.internal.AbstractSchemaValidator.doValidation(AbstractSchemaValidator.java:75) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:295) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:145) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at java.base/java.util.HashMap.forEach(HashMap.java:1421) ~[na:na] at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:142) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:315) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.6.jar:6.1.6] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.6.jar:6.1.6] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.6.jar:6.1.6] ... 25 common frames omitted
Add comment
Please sign in to leave a comment.
I would gladly provide anything relevant or the build