1

私は最初の django アプリを作成している最中です。だれかがクローンを作成して、最小限の問題で作業を開始できるように、git にコミットしたいと考えています。起動して実行するために必要なことの 1 つは、ローカルの mysql インストールに新しいデータベースを作成し、そこに新しいユーザーを作成することでした。誰かにクローンを作成してもらい、それを自動的に実行してもらいたいです。これを行う良い方法はありますか?

4

1 に答える 1

2

mysql-pythonを使用して python スクリプトを作成し、データベースを作成するか、シェル スクリプトを変更してニーズに合わせます。

#!/bin/bash

function pre_checks() {

    if [[ "$1" -ne 3 ]]; then
        echo "Usage: $0 [DATABASE NAME] [USERNAME] [HOST]"
        return 1
    fi

    if ! command -v /usr/bin/mysql >/dev/null 2>&1; then
        echo "Mysql is not installed."
        return 1
    fi

    echo -n "Create the database '${2}' and the user '${3}' now? (y/n) "
    read ANSWER

    case "$ANSWER" in
        "y"|"Y")
            echo -n "Password for ${3}: "
            read -s USER_PW
            echo
            return 0 ;;
        "n"|"N"| *)
            echo "Bye."
            return 1 ;;
    esac
}

function create_db() {
    Q1="CREATE DATABASE IF NOT EXISTS ${1} CHARACTER SET utf8;"
    Q2="GRANT ALL ON *.* TO '${2}'@'${3}' IDENTIFIED BY '$USER_PW';"
    Q3="FLUSH PRIVILEGES;"
    Q4="SHOW DATABASES;"
    SQL="${Q1} ${Q2} ${Q3} ${Q4}"

    echo "Query:"
    echo "${SQL}"
    echo -n "Run query now? (y/n) "
    read ANSWER

    case "$ANSWER" in
        "y" | "Y" )
            /usr/bin/mysql -uroot -p -e "$SQL" || echo "Failure."
            ;;
        "n" | "N" | *)
            echo "Bye."
            return 1
            ;;
    esac
}

pre_checks "$#" "$1" "$2" && create_db "$1" "$2" "$3"
于 2012-08-16T02:55:22.670 に答える