Guys, this post will be useful if you are using SonarQube for code analysis and quality control. In today's post we will look into how to automate taking regular backups of SonarQube's back-end database.
For illustration, we will use MySql DB to store SonarQube's metadata which includes analysis parameters like code smells, bugs, code coverage, unit test coverage etc. In this case we host Sonar on a linux machine, so we write a bash script to take regular backups of the MySql DB. Take a look at a simple sample script below :
#!/bin/bash
# script for taking database dump of sonar
user="root";
hostname="localhost";
db_name="sonar";
dateformat=`date +%d-%m-%y`;
mysqldump --defaults-extra-file="/usr/local/cron_scripts/.my.cnf" -u $user -h $hostname sonar | gzip > /usr/local/mysql_dumps/sonar_dump_$dateformat.sql.gz
chmod 755 /usr/local/mysql_dumps/sonar_dump_$dateformat.sql.gz
For illustration, we will use MySql DB to store SonarQube's metadata which includes analysis parameters like code smells, bugs, code coverage, unit test coverage etc. In this case we host Sonar on a linux machine, so we write a bash script to take regular backups of the MySql DB. Take a look at a simple sample script below :
#!/bin/bash
# script for taking database dump of sonar
user="root";
hostname="localhost";
db_name="sonar";
dateformat=`date +%d-%m-%y`;
mysqldump --defaults-extra-file="/usr/local/cron_scripts/.my.cnf" -u $user -h $hostname sonar | gzip > /usr/local/mysql_dumps/sonar_dump_$dateformat.sql.gz
chmod 755 /usr/local/mysql_dumps/sonar_dump_$dateformat.sql.gz
As you see, we have used mysqldump to take dump of the database, zip it, append it with the current date and store it at the said location.
Taking dumps of Sonar can be extremely useful for the purpose of importing and exporting of a Sonar instance from one machine to another without losing the analysis history.
Taking dumps of Sonar can be extremely useful for the purpose of importing and exporting of a Sonar instance from one machine to another without losing the analysis history.