Liquibase provides a snapshot command that helps in capturing the current state of the target database, and if required it can also save the current state into the format provided in snapshotFormat attribute in the file name provided in outputFile attributes.
Liquibase also provides a snapshotReference command, which helps capture the source database's current state. and just like the snapshot command, if required it can also save the current state into the format provided in snapshotFormat attribute in the file name provided in outputFile attributes.
execute the below script into the database
create database appleDbSource;
use appleDbSource;
create table apple (apple_id bigint not null AUTO_INCREMENT , apple_name varchar(255), available CHAR(1), current_date_time datetime default now(), primary key (apple_id), CONSTRAINT uqniue_apple_name UNIQUE (apple_name)) engine=InnoDB;
insert into apple (apple_name, available, current_date_time) values ("Macintosh", 'Y', now());
insert into apple (apple_name, available, current_date_time) values ("Fuji", 'Y', now());
commit;
create database appleDbSource;
commit;liquibase.properties (update changeLog File file format with SQL, XML, YAML, JSON as per changelog.mysql.)
liquibase.command.referenceUrl =jdbc:mysql://localhost:3306/appleDbSource?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
liquibase.command.referenceUsername= root
liquibase.command.referencePassword= rootroot
snapshotFormat=json
outputFile=SourceDbSnapshot.jsonTo create a snapshot of the current database, execute the command
liquibase snapshotReference it will create a file named Snapshot.json, which will contain the current state of the database in JSON format