2012-08-15 35 views
1

我正在制作我的第一个django应用程序,我想以这种方式将它提交给git,以便某人可以克隆它并开始以最少的麻烦开始工作。我需要做的事情之一就是在我的本地mysql安装中创建一个新的数据库,并在那里创建一个新的用户。我很乐意让某人克隆下来,并为他们自动完成。有没有一个好的方法来做到这一点?什么是提交Django应用程序运行所需的所有MySQL设置的好方法?

回答

2

使用mysql-python并编写一个python脚本来创建数据库或更改我的shell脚本以使其适合您的需要。

#!/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" 
相关问题