Files
phpmyadmin/scripts/inno2pma.sh
Garvin Hicking 4ebeb6822f Patch #709383
2003-05-02 10:59:43 +00:00

56 lines
1.7 KiB
Bash

#!/bin/sh
#
# inno2pma
#
# insert InnoDB foreign keys into phpmyadmin relation table
# by Ernie Hershey 3/15/2003
#
# THIS IS AN EXPERIMENTAL SCRIPT - PLEASE DO NOT USE THIS
# IF YOU DON'T UNDERSTAND WHAT IT IS DOING!
#
# This was posted on the Open Discussion forum by
# ehershey. The idea is interesting, however we should
# implement it in PHP.
#
# In future versions of phpMyAdmin the use of a proprietary
# storage of relational tables will be discarded in favor of
# the InnoDB relations (or in addition to). Support of InnoDB
# relations is on our ToDo-List.
#
# requires :
# mysql client tools
# standard unix shell tools
# special PHPMyAdmin relation table setup
#
#
# config
database="triohost2"
#table="domains"
relationdb="phpmyadmin"
relationtable="PMA_relation"
# end config
mysqldump --no-data $database $table | egrep "^CREATE|^ FOREIGN" | while read line
do
line=`echo "$line"|sed 's/^ *//g`
first_token=`echo "$line" | cut -f1 -d" "`
case $first_token in
CREATE)
table_name=`echo "$line"|sed 's/CREATE TABLE \(.*\) (/\1/'`
echo "DELETE FROM $relationtable WHERE master_db='$database' AND master_table='$table_name'" | mysql $relationdb
;;
FOREIGN)
localcolumn=`echo "$line" | cut -f2 -d\\\``
foreigntablefull=`echo "$line" | cut -f4 -d\\\``
foreigndb=`echo $foreigntablefull | cut -f1 -d.`
foreigntable=`echo $foreigntablefull | cut -f2 -d.`
foreigncolumn=`echo "$line" | cut -f6 -d\\\``
echo processing foreign key on column $database.$table_name.$localcolumn to $foreigndb.$foreigntable.$foreigncolumn >&2
echo "INSERT INTO $relationtable VALUES ('$database','$table_name','$localcolumn','$foreigndb','$foreigntable','$foreigncolumn');" | mysql $relationdb
;;
esac
done