Browse Source

Bug 10782 - Add a koha-mysqlcheck script

This patch adds the koha-mysqlcheck script, as a "frontend" for
the mysqlcheck command. It can be used to check the integrity of
database tables, as well as to repair them. See "man mysqlcheck"
for more information.

The script takes a Koha instance name as its only required
parameter. Any other parameters provided before the instance
name are passed directly to mysqlcheck, which means that all
the functionality of mysqlcheck is available through this script.

To test the script:
- Apply the patch, build your own packages and install them, or
- copy koha-mysqlcheck to a server already running off packages

- Run some variations of the command, with and without arguments,
  and check that the output makes sense. E.g.:
    sudo koha-mysqlcheck myinstance
    sudo koha-mysqlcheck -e myinstance # Extended checks
    sudo koha-mysqlcheck -e -v myinstance # Extended checks and verbose
- See "man mysqlcheck" for other relevant options

To test the man page:
- Run these commands and look at the formatted man page:
    $ xsltproc /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
      debian/docs/koha-mysqlcheck.xml
    $ man -l koha-mysqlcheck.8
- Make sure this test passes:
    $ prove -v xt/verify-debian-docbook.t

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
3.16.x
Magnus Enger 11 years ago
committed by Galen Charlton
parent
commit
25c932967f
  1. 44
      debian/docs/koha-mysqlcheck.xml
  2. 48
      debian/scripts/koha-mysqlcheck

44
debian/docs/koha-mysqlcheck.xml

@ -0,0 +1,44 @@
<article xmlns='http://docbook.org/ns/docbook'>
<title>koha-mysqlcheck</title>
<info>
<productname>Koha</productname> is the first free software library automation package.
<author>
<orgname>The Koha Community</orgname>
<uri>http://koha-community.org/</uri>
</author>
</info>
<refentry xml:id="koha-mysqlcheck">
<refmeta>
<refentrytitle>koha-mysqlcheck</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>koha-mysqlcheck</refname>
<refpurpose>Run <command>mysqlcheck</command> on the database of the specified Koha instance.</refpurpose>
<refclass>UNIX/Linux</refclass>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>koha-mysqlcheck</command> <arg><option>...</option></arg> <arg choice="req" rep="norepeat"><replaceable>instancename</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>
<para>Run <command>mysqlcheck</command> on the database of the specified Koha instance.</para>
<para>Any arguments provided before the name of the instance are passed directly to <command>mysqlcheck</command>. This means that all the operations of <command>mysqlcheck</command> are available through this script.</para>
</refsect1>
<refsect1><title>See also</title>
<simplelist type="inline">
<member><command>mysqlcheck(1)</command></member>
<member><command>koha-mysql(8)</command></member>
</simplelist>
</refsect1>
</refentry>
</article>

48
debian/scripts/koha-mysqlcheck

@ -0,0 +1,48 @@
#!/bin/bash
#
# koha-mysqlcheck: run mysqlcheck on the database of the specified Koha instance.
# Copyright 2013 Magnus Enger Librioech
# Based on koha-mysql, which is Copyright 2011 Catalyst IT, Ltd
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -e
umask 0077
die() {
echo "$@" 1>&2
exit 1
}
# Parse command line.
if [ $# -lt 1 ]; then
die "Usage: $0 [options] instancename"
fi
# Separate any arguments from the instance name
array=($@)
len=${#array[@]}
name=${array[$len-1]}
args=${array[@]:0:$len-1}
kohaconfig="/etc/koha/sites/$name/koha-conf.xml"
mysqlhost="$( xmlstarlet sel -t -v 'yazgfs/config/hostname' $kohaconfig )"
mysqldb="$( xmlstarlet sel -t -v 'yazgfs/config/database' $kohaconfig )"
mysqluser="$( xmlstarlet sel -t -v 'yazgfs/config/user' $kohaconfig )"
mysqlpass="$( xmlstarlet sel -t -v 'yazgfs/config/pass' $kohaconfig )"
mysqlcheck --host="$mysqlhost" --user="$mysqluser" --password="$mysqlpass" \
$args "$mysqldb"
Loading…
Cancel
Save