[JAVA] Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase

Contexte

J'étudie Spring Boot.

est.

Je voulais écrire des méthodes SQL en étudiant Spring Boot

Spring Bien que j'aie eu un accès DB simple avec le JPA par défaut, Quand je suis allé à la table JOIN, j'avais l'impression que je n'étais pas bon dans ce domaine. .. .. Rappelant que j'avais l'habitude d'écrire des instructions SELECT sur une base de méthode au travail dans le passé J'ai cherché une bibliothèque similaire.

Existe-t-il un générateur de requêtes de type ORM appelé ** JOOQ **? J'ai remarqué cela, alors je l'ai présenté.

Méthode d'introduction

Je vais l'omettre. Lors de l'utilisation de Postgres, je n'ai pas eu beaucoup de problèmes avec la génération automatique du code source lié aux tables pour les tables de la base de données cible.

Une erreur est survenue!

Il ne semble y avoir aucune erreur de compilation, donc lorsque j'ai essayé de démarrer l'application WEB, l'erreur suivante s'est produite.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.ChangeLogParseException: Error parsing classpath:/db/changelog/db.changelog-master.yaml
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1108) ~[spring-context-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868) ~[spring-context-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
	at jp.ken.PasswordmanagerApplication.main(PasswordmanagerApplication.java:10) ~[main/:na]
Caused by: liquibase.exception.ChangeLogParseException: Error parsing classpath:/db/changelog/db.changelog-master.yaml
	at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:83) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.Liquibase.update(Liquibase.java:190) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.Liquibase.update(Liquibase.java:179) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:366) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:314) ~[liquibase-core-3.8.7.jar:na]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	... 18 common frames omitted
Caused by: java.io.FileNotFoundException: class path resource [db/changelog/db.changelog-master.yaml] cannot be resolved to URL because it does not exist
	at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:195) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at liquibase.integration.spring.SpringLiquibase$SpringResourceOpener.getResourcesAsStream(SpringLiquibase.java:613) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.util.StreamUtil.singleInputStream(StreamUtil.java:186) ~[liquibase-core-3.8.7.jar:na]
	at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:26) ~[liquibase-core-3.8.7.jar:na]
	... 25 common frames omitted

Qu'est-ce que c'est? .. .. Qu'est-ce que Liquidbase? : Rolling_eyes:

Avec la sagesse de nos prédécesseurs https://qiita.com/opengl-8080/items/37beac5e210f5363af4b

En gros, cela ressemble à un outil de gestion de base de données. Cela semble pratique, mais je n'en ai pas besoin maintenant. Alors, ne pouvons-nous pas réussir à passer?

J'ai essayé les paramètres suivants en vérifiant

  1. Créez un dossier db dans src / main / resources
  2. Créez un fichier appelé db.changelog-master.yaml dans le dossier db
  3. Ajouté à application.properties

Contenu de db.changelog-master.yaml

db.changelog-master.yaml


databaseChangeLog:
  - changeSet:
       author: authorName
       id: changelog-1.0

Même si j'ai vidé le fichier ou laissé "databaseChangeLog:", une erreur s'est produite, j'ai donc cherché le minimum requis et l'ai trouvé comme ci-dessus.

Addendum application.properties

application.properties


spring.liquibase.change-log=classpath:db/db.changelog-master.yaml

Je vais spécifier le yaml ci-dessus.

Vous pouvez découvrir comment créer un fichier sur le site suivant. https://stackoverflow.com/questions/41990295/java-illegalstateexception-cannot-find-changelog-location-class-path-resourc

De plus, l'élément yaml minimum requis est déduit du site suivant. https://qiita.com/opengl-8080/items/37beac5e210f5363af4b

L'erreur a été résolue ci-dessus! Félicitations, félicitations.

Recommended Posts

Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase
Notez que j'étais accro au traitement par lots avec Spring Boot
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
Un site facile à comprendre lorsque j'ai commencé à apprendre Spring Boot
Une histoire qui m'a fait regretter quand une "NotReadablePropertyException" s'est produite pendant le développement de l'application Spring Boot.
[Opération non autorisée] Un mémorandum car une erreur s'est produite lors de la création d'une instance EC2.
L'histoire de la transition de Spring Boot 1.5 à 2.1
Une erreur s'est produite lors de l'exécution d'une fonction avec CURSOR défini dans le paramètre OUT de MyBatis dans PostgreSQL.
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Lorsque vous souhaitez notifier une erreur quelque part lors de l'utilisation de graphql-spring-boot avec Spring Boot
Une histoire dans laquelle j'étais vraiment quand j'ai fait triple DES avec ruby
De la création d'un projet Spring Boot à l'exécution d'une application avec VS Code
Une histoire sur une erreur lors de la migration dans docker PHP Laravel
Une histoire sur l'exécution de Sprint-boot avec kubernetes (GKE) et l'échec de la connexion à CloudSQL
[Spring Boot] L'histoire selon laquelle le bean de la classe avec l'annotation ConfigurationProperties n'a pas été trouvé
Lors du téléchargement d'un fichier avec Spring Boot, la gestion des erreurs est effectuée lorsque la taille maximale du fichier est dépassée.
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
Un mémorandum lors de la création d'un service REST avec Spring Boot
Java: Une histoire qui m'a mis mal à l'aise quand on m'a appris à comparer des chaînes avec des égaux sans raison.
L'histoire qui a conduit à résoudre l'erreur car postgres n'a pas commencé avec docker-compose up
Ce que j'ai corrigé lors de la mise à jour vers Spring Boot 1.5.12 ・ Ce à quoi j'étais accro
Une erreur s'est produite car le only_full_group_by de sql_mode n'a pas été observé.
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
Une erreur 404 se produit lors du test de l'authentification par formulaire avec Spring Security
Une histoire sur la connexion à un serveur CentOS 8 avec un ancien Ansible
Comment créer votre propre contrôleur correspondant à / error avec Spring Boot
[Rejeté] Un mémorandum car une erreur s'est produite lors du déploiement dans Heroku
Exemple de code pour le test unitaire d'un contrôleur Spring Boot avec MockMvc
Lorsque vous recevez un appel, envoyez un SMS à ce numéro
Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent
Comment définir une taille de récupération par défaut si jOOQ obtient une erreur OOM lors de la récupération d'un énorme jeu de résultats
L'histoire de rendre possible la construction d'un projet qui a été construit par Maven avec Ant
[Spring Boot] Précautions lors du développement d'une application Web avec Spring Boot et du placement d'une guerre sur un serveur Tomcat indépendant
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8