...
Update: unix-admin can install alternate cgi scripts to be invoked by an alternate SLAC-internal-only test web server. I've created the alternates and informed unix-admin they're ready to go.
Update to update: The alternate pages can be viewed (internal SLAC network only) at, e.g., http://www-dev.slac.stanford.edu/cgi-wrap/ReleaseManager
Table Naming and Structure
In the Workflow database there is a table named trigger. As of MySQL 5.0 this is a reserved word. It may still be used as a table name, but must be quoted with back-ticks like this; `trigger`
So far I've only tested this with the command-line client program mysql. There is one Perl module (Workflow.pm) which probably needs to be modified in a couple places. I haven't been able to find any other references to this table.
There was a similar problem with the newly reserved word condition which is used as a column name in one of the tables. The only references to it in the Perl scripts are also in Workflow.pm.
The results of the describe <tablename> command are not always the same between 4.1 and 5.5, even if show create table <tablename> has identical output for both. In particular, the describe outputs differ for columns created NOT NULL. Probably RM never uses the describe command, or if it does, does not look specifically for NOT NULL columns, but we should confirm. There are a couple other small differences in describe output between old and new MySQL versions which are even less likely to be significant (in values displayed under headings "Key" and "Default").
Instances of Use of MySQL by the CMT RM
All over the place. We decided not to pursue testing more individual pieces (other than web pages) since we had reason to believe we were close and there is no user activity to speak of this week.
Use of MySQL 4.1 Client Library
...
- Make copies of cgi scripts used for web pages which point to copied db on mysql-node01. Verify that all functions still work. Make an alternate module to DBConf.pm which points to mysql-node01 (but leave the original intact). Verify that all functions still work.
All ReleaseManager pages have been cloned and directed to mysql-node01; they seem ok. - Compare glastDB and mysql-node1 tables via command-line mysql client program.
Done. There is one potentially troublesome issue: use of reserved word trigger as table name. - As much as possible, isolate parts of CMT RM which access db and test. That is, make alternate scripts which point at the alternate DBConf.pm and run them by hand. . Other than confirming with test script that quoting trigger in Perl usage would satisfy MySQL 5.5, did not pursue this.
- Fix any problems found up to this point. Changed a few lines in Workflow.pm.
![(tick)](/s/rkij3x/8804/1naq7q0/_/images/icons/emoticons/check.svg)
- Make a copy of installer script(s) pointed to mysql-node01 and test.
![(tick)](/s/rkij3x/8804/1naq7q0/_/images/icons/emoticons/check.svg)
- Full system test of the RM with mysql-node01.
That is - warn everyone not connected with testing to avoid any activity which would involve writing to db (e.g., tagging)
- shut of CMT RM
- save original DBConf.pm; rename alternate to DBConf.pm. If there are any other sources of host name besides DBConf.pm adjust those as well.
- Turn CMT RM on. Verify functionality (LATEST tag, release tag, etc.)
- Turn off CMT RM again; point everything back to glastDB; turn back on.
- The actual move:
- send general warning. There should be no tagging during the move at the very least.
- shut off RM.
- dump databases on glastDB, refresh copies on mysql-node01
- point glastDB alias to mysql-node01 (did we receive confirmation that we will retain the glastDB alias?)
- restart everything; issue all-clear
...