question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Liquibase fails to find datasource when devservices is disabled.

See original GitHub issue

Describe the bug

I get the following error when I set quarkus.datasource.devservices=false in dev mode after upgrading Quarkus from 1.12.2.Final to 1.13.0.Final. I already have a database running on my dev environment so I don’t need another database.

17:24:14 ERROR [io.quarkus.runtime.Application] (Quarkus Main Thread) [] Failed to start application (with profile dev): javax.enterprise.inject.UnsatisfiedResolutionException: No datasource has been configured
	at io.quarkus.liquibase.runtime.LiquibaseRecorder$1.get(LiquibaseRecorder.java:27)
	at io.quarkus.liquibase.runtime.LiquibaseRecorder$1.get(LiquibaseRecorder.java:24)
	at io.quarkus.liquibase.LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_Bean.create(LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_Bean.zig:160)
	at io.quarkus.liquibase.LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_Bean.create(LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_Bean.zig:176)
	at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:96)
	at io.quarkus.arc.impl.AbstractSharedContext.access$000(AbstractSharedContext.java:14)
	at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:29)
	at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:26)
	at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:26)
	at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69)
	at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:26)
	at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:17)
	at io.quarkus.liquibase.LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_ClientProxy.arc$delegate(LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_ClientProxy.zig:67)
	at io.quarkus.liquibase.LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_ClientProxy.getDataSourceName(LiquibaseFactory_aaeeb0753d75aedb9e43338fbff15184711093e6_Synthetic_ClientProxy.zig:211)
	at io.quarkus.liquibase.runtime.devconsole.LiquibaseFactoriesSupplier$LiquibaseFactoryComparator.compare(LiquibaseFactoriesSupplier.java:41)
	at io.quarkus.liquibase.runtime.devconsole.LiquibaseFactoriesSupplier$LiquibaseFactoryComparator.compare(LiquibaseFactoriesSupplier.java:35)
	at java.base/java.util.TreeMap.put(TreeMap.java:550)
	at java.base/java.util.TreeSet.add(TreeSet.java:255)
	at io.quarkus.liquibase.runtime.devconsole.LiquibaseFactoriesSupplier.get(LiquibaseFactoriesSupplier.java:30)
	at io.quarkus.liquibase.runtime.devconsole.LiquibaseFactoriesSupplier.get(LiquibaseFactoriesSupplier.java:18)
	at io.quarkus.vertx.http.runtime.devmode.DevConsoleRecorder.addInfo(DevConsoleRecorder.java:37)
	at io.quarkus.deployment.steps.DevConsoleProcessor$runtimeTemplates-308161071.deploy_0(DevConsoleProcessor$runtimeTemplates-308161071.zig:150)
	at io.quarkus.deployment.steps.DevConsoleProcessor$runtimeTemplates-308161071.deploy(DevConsoleProcessor$runtimeTemplates-308161071.zig:40)
	at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:1058)
	at io.quarkus.runtime.Application.start(Application.java:90)
	at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:100)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:66)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:42)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:119)
	at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:29)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at io.quarkus.runner.bootstrap.StartupActionImpl$3.run(StartupActionImpl.java:134)
	at java.base/java.lang.Thread.run(Thread.java:834)

Expected behavior

I expect Liquibase to use named datasource as configured. There was no problem prior to Quarkus 1.13.0.Final.

Actual behavior

Liquibase fails to find named datasources

Configuration

# Add your application.properties here, if applicable.
quarkus.datasource.devservices=false

quarkus.datasource."inventory".db-kind=postgresql
quarkus.datasource."inventory".username=inventory
quarkus.datasource."inventory".password=secret
quarkus.datasource."inventory".jdbc.url=jdbc:postgresql://localhost:5432/inventory
quarkus.datasource."inventory".jdbc.min-size=2
quarkus.datasource."inventory".jdbc.max-size=50

quarkus.liquibase."inventory".change-log=db/s3-inventory/changelog.xml
quarkus.liquibase."inventory".migrate-at-start=true

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
mincelcommented, Apr 5, 2021

getting-started-liquibase-test.zip

When you uncomment #quarkus.datasource.devservices=false in application.properties you’ll get the error.

0reactions
geoandcommented, Apr 5, 2021

Yes I know.

What I am asking @gsmet is whether the use case with no default datasource and only named datasources is supported (which I assume it is), or if it was working up until now by accident.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Spring boot testing with liquibase fails - Stack Overflow
I had the same issue, and it seems to have been caused by case sensitive checking of the database table name. That is,...
Read more >
Dev Services for Databases - Quarkus
Enabling / Disabling Dev Services for Database. Dev Services for databases automatically starts a database server in dev mode and when running tests....
Read more >
Home of Quarkus Cheat-Sheet - GitHub Pages
General configuration properties: quarkus.devservices.enabled. If you want to disable all Dev Services. (default: true ). quarkus.devservices.timeout.
Read more >
chore(deps): update dependency io.quarkus:quarkus ... - GitLab
An error occurred while retrieving approval data for this merge request. chore(deps): update dependency io.quarkus:quarkus ...
Read more >
Configuring dedicated Liquibase Datasource on Spring Boot 2
Why Spring Boot, why?! The Solution. I was hoping to find a nice little property to configure liquibase Hikari Connection Pool, something like ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found