Skip to content

Commit 7f3b24b

Browse files
committed
- Fixed a problem with dbversionioning.
1 parent b151a2f commit 7f3b24b

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

install/lib/installer_base.lib.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,19 +231,31 @@ public function add_database_server_record() {
231231
$file_server_enabled = ($conf['services']['file'])?1:0;
232232
$db_server_enabled = ($conf['services']['db'])?1:0;
233233
$vserver_server_enabled = ($conf['services']['vserver'])?1:0;
234-
234+
235+
//** Get the database version number based on the patchfiles
236+
$found = true;
237+
while($found == true) {
238+
$next_db_version = intval($current_db_version + 1);
239+
$patch_filename = realpath(dirname(__FILE__).'/../../').'/sql/incremental/upd_'.str_pad($next_db_version, 4, '0', STR_PAD_LEFT).'.sql';
240+
if(is_file($patch_filename)) {
241+
$current_db_version = $next_db_version;
242+
} else {
243+
$found = false;
244+
}
245+
}
246+
$current_db_version = intval($current_db_version);
235247

236248

237249
if($conf['mysql']['master_slave_setup'] == 'y') {
238250

239251
//* Insert the server record in master DB
240-
$sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1);";
252+
$sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);";
241253
$this->dbmaster->query($sql);
242254
$conf['server_id'] = $this->dbmaster->insertID();
243255
$conf['server_id'] = $conf['server_id'];
244256

245257
//* Insert the same record in the local DB
246-
$sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`) VALUES ('".$conf['server_id']."',1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1);";
258+
$sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES ('".$conf['server_id']."',1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);";
247259
$this->db->query($sql);
248260

249261
//* username for the ispconfig user
@@ -253,7 +265,7 @@ public function add_database_server_record() {
253265

254266
} else {
255267
//* Insert the server, if its not a mster / slave setup
256-
$sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1);";
268+
$sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);";
257269
$this->db->query($sql);
258270
$conf['server_id'] = $this->db->insertID();
259271
$conf['server_id'] = $conf['server_id'];

install/lib/update.lib.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,21 @@ function updateDbAndIni() {
151151
} else {
152152
system("mysql --default-character-set=".$conf['mysql']['charset']." --force -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' ".$conf['mysql']['database']." < existing_db.sql");
153153
}
154+
155+
//** Get the database version number based on the patchfile
156+
$found = true;
157+
while($found == true) {
158+
$next_db_version = intval($current_db_version + 1);
159+
$patch_filename = realpath(dirname(__FILE__).'/../').'/sql/incremental/upd_'.str_pad($next_db_version, 4, '0', STR_PAD_LEFT).'.sql';
160+
if(is_file($patch_filename)) {
161+
$current_db_version = $next_db_version;
162+
} else {
163+
$found = false;
164+
}
165+
}
166+
167+
//* update the database version in server table
168+
$inst->db->query("UPDATE ".$conf["mysql"]["database"].".server SET dbversion = '".$current_db_version."' WHERE server_id = ".$conf['server_id']);
154169

155170
if ($conf['powerdns']['installed']) {
156171

0 commit comments

Comments
 (0)