diff --git a/src/database.js b/src/database.js index 97b9b8010..64bd35cbf 100644 --- a/src/database.js +++ b/src/database.js @@ -143,9 +143,11 @@ async function importFromFile(file) { async function exportToFile(file) { assert.strictEqual(typeof file, 'string'); - // latest mysqldump enables column stats by default which is not present in MySQL 5.7 server - // this option must not be set in production cloudrons which still use the old mysqldump - const colStats = (!constants.TEST && require('fs').readFileSync('/etc/lsb-release', 'utf-8').includes('20.04')) ? '--column-statistics=0' : ''; + // latest mysqldump enables column stats by default which is not present in 5.7 util + const mysqlDumpHelp = safe.child_process.execSync('/usr/bin/mysqldump --help', { encoding: 'utf8' }); + if (!mysqlDumpHelp) throw new BoxError(BoxError.DATABASE_ERROR, safe.error); + const hasColStats = mysqlDumpHelp.includes('column-statistics'); + const colStats = hasColStats ? '--column-statistics=0' : ''; const cmd = `/usr/bin/mysqldump -h "${gDatabase.hostname}" -u root -p${gDatabase.password} ${colStats} --single-transaction --routines --triggers ${gDatabase.name} > "${file}"`;