mysql> show create table servicecheckdependencies\G 

*************************** 1. row *************************** 

       Table: servicecheckdependencies 

Create Table: CREATE TABLE `servicecheckdependencies` ( 

  `servicecheckid` int(11) NOT NULL default '0', 

  `dependencyid` int(11) NOT NULL default '0', 

  PRIMARY KEY  (`servicecheckid`,`dependencyid`), 

  KEY `servicecheckid` (`servicecheckid`), 

  KEY `dependencyid` (`dependencyid`) 

) ENGINE=InnoDB DEFAULT CHARSET=latin1 

1 row in set (0.00 sec) 

  

  

The foreign key does not exist, also not on my other (much bigger) 
installation. 

So there is something missing in the database upgrading method. 

  

When I try to add the new foreign key (as in the update script for 2.14.7): 

mysql> ALTER TABLE servicecheckdependencies ADD CONSTRAINT 
servicecheckdependencies_dependencyid_fk FOREIGN KEY (dependencyid) REFERENCES 
servicechecks(id) ON DELETE CASCADE; 

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint 
fails (`opsview/#sql-56be_2c45`, CONSTRAINT 
`servicecheckdependencies_dependencyid_fk` FOREIGN KEY (`dependencyid`) 
REFERENCES `servicechecks` (`id`) ON DELETE CASCADE) 

  

Thanks, 

-- 

Toni Van Remortel

System Engineer @ Precision Operations NV

+32 3 451 92 20 - [email protected]


  

From:[email protected] [mailto:[email protected]] On 
Behalf Of Ton Voon
Sent:Thursday, August 27, 2009 5:29 PM
To:Opsview Users
Subject:Re: [opsview-users] Upgrade to 3.3 fails 



  

  

On 27 Aug 2009, at 16:08, Toni Van Remortel wrote: 






It seems that the upgrade procedure fails again on the database: 


  


Setting up opsview-core (3.3.0.2987-1hardy1) 
...                                                                                                                                  
 


Database opsview detected - upgrading 
...                                                                                                                                         
 


Thu Aug 27 17:00:49 2009: Starting for opsview                                  
                                                                                                   
 


Thu Aug 27 17:00:49 2009: DB at version 
2.14.5                                                                                                         
                             


DBD::mysql::db do failed: Error on rename of 
'./opsview/servicecheckdependencies' to './opsview/#sql2-130a-5a67e' (errno: 
152) [for Statement "ALTER TABLE servicecheckdependencies DROP FOREIGN KEY 
servicecheckdependencies_dependencyid_fk"] at 
/usr/local/nagios/installer/upgradedb_opsview.pl line 
1338.                                                        


Thu Aug 27 17:00:49 2009: Finished for 
opsview                                                                              
                                                        


dpkg: error processing opsview-core 
(--configure):                                                                                                                                
 


 subprocess post-installation script returned error exit status 1 


  


Database at version 2.14.5 ??? I'm upgrading from 3.1 !! 





  


If this upgrade step never passed, then future upgrades will try to run this 
step again. 


  


What does 'show create table servicecheckdependencies' say? Mysql docs say an 
error 152 is an incorrect foreign key name. 


  


Ton 


  



_______________________________________________
Opsview-users mailing list
[email protected]
http://lists.opsview.org/lists/listinfo/opsview-users

Reply via email to