where:
トップ > テーブル定義書を作成する
[ トラックバック(0) ]
Counter: 6113,
today: 3,
yesterday: 5
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>"