У меня есть базовый проект на основе Spring Boot
, использующий сценарии DDL
и DML
для заполнения моей H2
автономной БД с использованием Liquibase
версий БД.
Таблицы создаются и данные также заполняются в нем без каких-либо проблем. Однако я пытаюсь выполнить откат к более ранней версии changeset
, но получаю следующую ошибку. Не уверен, что моя maven
конфигурация неверна или моя команда неверна.
Пожалуйста, руководство.
Команда:
mvn liquibase:rollback -Dliquibase.rollbackTag=01-insertData-addresses-users
Ошибка:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.516 s
[INFO] Finished at: 2019-05-07T16:30:05-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'liquibase' in the current project and in the plugin groups [org.mule.tools, org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\R649526\.m2\repository), orgc-public (http://repo-proxy.org
org.net/maven/content/groups/orgc-public/), myrepo (http://repo.orgc.net/maven/content/repositories/MYREPO)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException
SRC / главная / ресурсы / дб / изменений / db.changelog-master.yaml
databaseChangeLog:
- changeSet:
id: 01-createTable-addresses-users
author: Nital Chandel
changes:
- sqlFile:
dbms: h2
encoding: utf8
endDelimiter: ;
path: scripts/01/01-ddl.sql
relativeToChangelogFile: true
splitStatements: true
stripComments: true
- changeSet:
id: 01-insertData-addresses-users
author: Nital Chandel
changes:
- sqlFile:
dbms: h2
encoding: utf8
path: scripts/01/01-dml.sql
relativeToChangelogFile: true
splitStatements: true
stripComments: true
- changeSet:
id: 02-createTable-project
author: Nital Chandel
changes:
- sqlFile:
dbms: h2
encoding: utf8
endDelimiter: ;
path: scripts/02/02-ddl.sql
relativeToChangelogFile: true
splitStatements: true
stripComments: true
- changeSet:
id: 02-insertData-project
author: Nital Chandel
changes:
- sqlFile:
dbms: h2
encoding: utf8
path: scripts/02/02-dml.sql
relativeToChangelogFile: true
splitStatements: true
stripComments: true
SRC / главная / ресурсы / дб / изменений / скрипты / 01/01-ddl.sql
CREATE TABLE ADDRESSES
(
ID NUMBER NOT NULL,
STREET VARCHAR2(100) NOT NULL,
CITY VARCHAR2(100),
PIN NUMBER(6),
CONSTRAINT ADDRESSES_PK PRIMARY KEY (ID)
);
CREATE TABLE USERS
(
ID NUMBER NOT NULL,
NAME VARCHAR2(50) NOT NULL,
EMAIL VARCHAR2(100),
PHONE NUMBER,
ADDRESS NUMBER NOT NULL,
CONSTRAINT USERS_PK PRIMARY KEY (ID),
CONSTRAINT USERS_FK FOREIGN KEY (ADDRESS) REFERENCES ADDRESSES (ID)
);
SRC / главная / ресурсы / дб / изменений / скрипты / 01/01-dml.sql
insert into ADDRESSES(ID, STREET, CITY, PIN) values (1, 'street1', 'city1', 111111);
insert into ADDRESSES(ID, STREET, CITY) values (2, 'street2', 'city2');
insert into USERS(ID, NAME, EMAIL, ADDRESS) values (1, 'Soumitra', 'soumitra@email.com', 1);
insert into USERS(ID, NAME, EMAIL, PHONE, ADDRESS) values (2, 'Suman', 'suman@email.com', 1254789541, 2);
SRC / главная / ресурсы / дб / изменений / скрипты / 02/02-ddl.sql
CREATE TABLE PROJECT
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR2(256) NOT NULL,
CODE VARCHAR2(10),
ENABLED CHAR(1) DEFAULT 'Y' NOT NULL
);
SRC / главная / ресурсы / дб / изменений / скрипты / 02/02-dml.sql
insert into PROJECT(ID, NAME, CODE) values (1, 'Project 1', 'A');
insert into PROJECT(ID, NAME, CODE) values (2, 'Project 2', 'B');
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>projectstar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>projectstar</name>
<description>Project management tool</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Примечание: Я уже прошел эту аналогичную ссылку SO ( Liquibase Rollback Spring boot ), но она не помогает мне по двум причинам. Во-первых, он не показывает, как конфигурации maven и spring-boot
могут выполнить откат, а во-вторых, наборы изменений в моем примере записываются с использованием файла .yaml
, который указывает на файлы .sql
, что весьма отличается от файла, упомянутого в приведенной выше ссылке. , Пожалуйста, НЕ отмечайте это как дубликат.