Имея приложение Spring-Boot с Dockerized и базу данных PostgreSQL, как я могу выполнить команду cmd
mvn liquibase:rollback -Dliquibase.rollbackCount=4 -Dliquibase.password=*********
или любой эквивалент против базы данных? Обратите внимание, что все мои изменения находятся в папке ресурсов проекта Spring-Boot, и я могу запустить указанную выше CMD из корня проекта.
Это файл докеров приложения Spring-Boot:
FROM openjdk:8-jre-alpine
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
JAVA_OPTS=""
CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.war
EXPOSE 8080 5701/udp
ADD *.war /app.war
и это служба PostgreSQL внутри docker-compose:
app-postgresql:
image: postgres:9.6.5
mem_limit: 256m
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PWD}
Я могу войти в контейнер приложения, но не установлен файл журнала изменений, maven или liquibase, поскольку все упаковано в app.war
Обновить
Я думал сделать резервную копию докеризованной БД, восстановить ее локально, а затем запустить команду отката из корня проекта. В конце концов, я сделал резервную копию локальной БД и восстановил ее в контейнере.
Наверное, это самый простой способ. Однако я надеюсь, что существует альтернативный способ без необходимости перемещать и восстанавливать БД.