.
Counter: 2640, today: 1, yesterday: 0

mysqlのテーブル定義書を作成する際に、非常に役に立つシェルスクリプトをこちらこちらのサイトで公開して下さっていたので、記載させて頂きます。用途に応じてパターン1、パターン2を使い分けるのが良いと思います。

■パターン1

  • 下記スクリプト1(1.sh)の
    MYSQL_USER=user
    MYSQL_PASSWD=passwd
    の部分を書き換える

  • 以下コマンドを実行すると、同一階層に★DB名.htmlが作成される
$ ./1.sh ★DB名

スクリプト1(1.sh)

#!/bin/sh
## base config
MYSQL_HOME=mysql
MYSQL_USER=user
MYSQL_PASSWD=passwd
 
CSS_FILE_NAME="style.css"
 
## db
if [ "$1" = "" ]; then
        DB_NAME=mysql
else
        DB_NAME=$1
fi
OUTPUT=$DB_NAME.html
 
## table
MYSQL="$MYSQL_HOME -u $MYSQL_USER -p$MYSQL_PASSWD $DB_NAME"
TABLES=`echo "show tables;" | $MYSQL -s`
 
## export html
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" > $OUTPUT
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">" >> $OUTPUT
echo "<head>" >> $OUTPUT
echo "<title>Mysql DB Document : $DB_NAME</title>" >> $OUTPUT
echo "<link rel=\"stylesheet\" href=\"$CSS_FILE_NAME\" type=\"text/css\" />" >> $OUTPUT
echo "</head>" >> $OUTPUT
echo "<body>" >> $OUTPUT
echo "<h1>Mysql DB Document : $DB_NAME</h1>" >> $OUTPUT
 
for TABLE_NAME in $TABLES;
do
    TABLE_STATUS=(`echo "show table status like '$TABLE_NAME'" | $MYSQL -s`)
    echo "<h3>$TABLE_NAME : ${TABLE_STATUS[18]}</h3>" >> $OUTPUT
    echo "show full columns from $TABLE_NAME;" | $MYSQL -H >> $OUTPUT
done
 
echo "</body>" >> $OUTPUT
echo "</html>" >> $OUTPUT

■パターン2

  • 下記スクリプト2(2.sh)の
    MYSQL_USER=user
    MYSQL_PASSWD=passwd
    の部分を書き換える

  • 以下コマンドを実行すると、同一階層に★DB名.htmlが作成される
$ ./2.sh ★DB名  > ★DB名.html

スクリプト2(2.sh)

#!/bin/sh
## base config
MYSQL_BIN=mysql
MYSQL_USER=user
MYSQL_PASSWD=password

## dbname
if [ "$1" = "" ]; then
    echo "no database name"
    exit 1;
else
    DB_NAME=$1
fi


## table
MYSQL="$MYSQL_BIN -u $MYSQL_USER -p$MYSQL_PASSWD $DB_NAME"
TABLES=`echo "show tables;" | $MYSQL -s`

## print html
echo "<html>"
echo "<head>"
echo "<title>Mysql DB Document : $DB_NAME</title>"
echo "</head>"
echo "<body>"
echo "<h1>Mysql DB Document : $DB_NAME</h1>"

for TABLE_NAME in $TABLES;
do
    TABLE_STATUS=(`echo "show table status like '$TABLE_NAME'" | $MYSQL -s`)
    echo "<h3>$TABLE_NAME</h3>"
    echo "show  columns from $TABLE_NAME;" | $MYSQL -H | sed s/\ BORDER=1//
done

echo "</body>"
echo "</html>"


リロード   差分 ソース ファイル添付 添付ファイル一覧   Wikiトップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
トラックバック [ トラックバック(0) ]
トラックバック URL: http://linuxexpert.ne.jp/modules/pukiwiki/tb/213

Expert Menu
最新記事
なぜここへ
Yahoo Japanから
検索結果から
友人に聞いて
前からURLを知っていた
他サイトからリンク
最新バージョンの確認

Linuxexpert is one of the service presented by InfomationSquare. / OmakaseBlog Login  |  Register Now!