From: Phil S. <al...@ca...> - 2003-08-11 17:34:54
|
On Mon, Aug 11, 2003 at 01:02:23PM -0400, Phil Stracchino wrote: > Kern, > I just finally got a successful download of 1.31a and installed it. My > Director now complains that it expects MySQL database version 6 and got > version 5. I don't *see* a scrupt anywhere to update the DB schema, and > I don't really want to blow away my database and recreate it at this > point in time. At this point in time, if at all possible, I need to > keep that data. > > Is there a DB update script? Barring that, what are the key changes to > the schema? The first change I see is in the File table, where JobId is > defined as JobId INTEGER UNSIGNED NOT NULL REFERENCES Job. If I try to > do this via an ALTER TABLE command, MySQL tells me that REFERENCES Job > is a SQL error. The MySQL documentation states that REFERENCES is > supported only for InnoDB tables. Is this 'REFERENCES Job' vital > to MySQL? If so, it looks as though I can't upgrade to 1.31a until and > unless I reinstall MySQL with InnoDB tables support. Following up my own post again, after comparing the existing schema to make_mysql_tables, the following SQL commands will update an existing Bacula 1.30 catalog to Bacula-1.31a, *ASSUMING THE REFERENCES ARE NOT ESSENTIAL*. If they are, then anyone without InnoDB support is going to be out of luck. CREATE TABLE BaseFiles ( BaseId INTEGER UNSIGNED AUTO_INCREMENT, JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, FileId INTEGER UNSIGNED NOT NULL REFERENCES File, FileIndex INTEGER UNSIGNED, PRIMARY KEY(BaseId) ); CREATE TABLE UnsavedFiles ( UnsavedId INTEGER UNSIGNED AUTO_INCREMENT, JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, PathId INTEGER UNSIGNED NOT NULL REFERENCES Path, FilenameId INTEGER UNSIGNED NOT NULL REFERENCES Filename, PRIMARY KEY (UnsavedId) ); alter table Job add column HasBase TINYINT NOT NULL DEFAULT 0 after FileSetId; alter table FileSet add column CreateTime DATETIME NOT NULL after MD5; alter table JobMedia add column VolIndex INTEGER UNSIGNED NOT NULL after EndBlock; alter table Media change column VolStatus VolStatus enum('Full','Archive','Append','Recycle','Purged','Read-Only','Disabled','Error','Busy','Used','Cleaning') NOT NULL; alter table Counters drop column PoolId; update Version set VersionId = 6 where VersionId = 5; I have attached a script to do this as update_mysql_tables_v5_to_v6. -- .********* Fight Back! It may not be just YOUR life at risk. *********. : phil stracchino : unix ronin : renaissance man : mystic zen biker geek : : al...@ca... : ala...@ea... : ph...@la... : : 2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold) : : Linux Now! ...Because friends don't let friends use Microsoft. : |