|  | @@ -13,35 +13,14 @@
 | 
	
		
			
			| 13 | 13 |  #
 | 
	
		
			
			| 14 | 14 |  # * DATABASE_TYPE (values: postgresql, mysql, sqlite)
 | 
	
		
			
			| 15 | 15 |  # * DATABASE_USER
 | 
	
		
			
			| 16 |  | -# * DATABASE PASSWORD
 | 
	
		
			
			|  | 16 | +# * DATABASE_PASSWORD
 | 
	
		
			
			| 17 | 17 |  # * DATABASE_HOST
 | 
	
		
			
			|  | 18 | +# * DATABASE_PORT
 | 
	
		
			
			| 18 | 19 |  # * DATABASE_NAME
 | 
	
		
			
			| 19 | 20 |  #
 | 
	
		
			
			| 20 | 21 |  
 | 
	
		
			
			| 21 | 22 |  # Check environment variables
 | 
	
		
			
			| 22 |  | -./check_env_vars.sh
 | 
	
		
			
			| 23 |  | -
 | 
	
		
			
			| 24 |  | -
 | 
	
		
			
			| 25 |  | -
 | 
	
		
			
			| 26 |  | -
 | 
	
		
			
			| 27 |  | -# MySQL case: engine is mysql+oursql
 | 
	
		
			
			| 28 |  | -if [ "$DATABASE_TYPE" = mysql ] ; then
 | 
	
		
			
			| 29 |  | -    DATABASE_TYPE=mysql+oursql
 | 
	
		
			
			| 30 |  | -fi
 | 
	
		
			
			| 31 |  | -
 | 
	
		
			
			| 32 |  | -# Script preparation
 | 
	
		
			
			| 33 |  | -FRESH_INSTALL=false
 | 
	
		
			
			| 34 |  | -
 | 
	
		
			
			| 35 |  | -# Start PostgreSQL
 | 
	
		
			
			| 36 |  | -service postgresql start  # Broken if volume empty ... ???
 | 
	
		
			
			| 37 |  | -
 | 
	
		
			
			| 38 |  | -# Init database if needed
 | 
	
		
			
			| 39 |  | -if ! [ "$( su - postgres -s /bin/bash -c "psql -tAc \"SELECT 1 FROM pg_database WHERE datname='tracim'\"" )" = '1' ]; then
 | 
	
		
			
			| 40 |  | -    FRESH_INSTALL=true
 | 
	
		
			
			| 41 |  | -    su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE tracim;\""
 | 
	
		
			
			| 42 |  | -    su - postgres -s /bin/bash -c "psql -c \"CREATE USER tracim WITH PASSWORD 'tracim';\""
 | 
	
		
			
			| 43 |  | -    su - postgres -s /bin/bash -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE tracim TO tracim;\""
 | 
	
		
			
			| 44 |  | -fi
 | 
	
		
			
			|  | 23 | +/tracim/check_env_vars.sh
 | 
	
		
			
			| 45 | 24 |  
 | 
	
		
			
			| 46 | 25 |  # Create config.ini file if no exist
 | 
	
		
			
			| 47 | 26 |  if [ ! -f /etc/tracim/config.ini ]; then
 | 
	
	
		
			
			|  | @@ -60,13 +39,37 @@ if [ ! -f /etc/tracim/uwsgi.ini ]; then
 | 
	
		
			
			| 60 | 39 |      cp /tracim/tracim/uwsgi.ini.template /etc/tracim/uwsgi.ini
 | 
	
		
			
			| 61 | 40 |  fi
 | 
	
		
			
			| 62 | 41 |  
 | 
	
		
			
			| 63 |  | -# Update config with ENV
 | 
	
		
			
			| 64 |  | -# TODO Manage other ENV vars
 | 
	
		
			
			| 65 |  | -sed -i "s/\(sqlalchemy.url *= *\).*/\1postgresql:\/\/tracim:tracim@127.0.0.1:5432\/tracim?client_encoding=utf8/" /etc/tracim/config.ini
 | 
	
		
			
			|  | 42 | +# MySQL case
 | 
	
		
			
			|  | 43 | +if [ "$DATABASE_TYPE" = mysql ] ; then
 | 
	
		
			
			|  | 44 | +    # Ensure DATABASE_PORT is set
 | 
	
		
			
			|  | 45 | +    if ! [ -n "$DATABASE_PORT" ]; then
 | 
	
		
			
			|  | 46 | +        DATABASE_PORT=3306
 | 
	
		
			
			|  | 47 | +    fi
 | 
	
		
			
			|  | 48 | +    # engine is mysql+oursql
 | 
	
		
			
			|  | 49 | +    DATABASE_TYPE=mysql+oursql
 | 
	
		
			
			|  | 50 | +fi
 | 
	
		
			
			|  | 51 | +
 | 
	
		
			
			|  | 52 | +# PostgreSQL case
 | 
	
		
			
			|  | 53 | +if [ "$DATABASE_TYPE" = postgresql ] ; then
 | 
	
		
			
			|  | 54 | +    # Ensure DATABASE_PORT is set
 | 
	
		
			
			|  | 55 | +    if ! [ -n "$DATABASE_PORT" ]; then
 | 
	
		
			
			|  | 56 | +        DATABASE_PORT=5432
 | 
	
		
			
			|  | 57 | +    fi
 | 
	
		
			
			|  | 58 | +    DATABASE_SUFFIX="?client_encoding=utf8"
 | 
	
		
			
			|  | 59 | +fi
 | 
	
		
			
			|  | 60 | +
 | 
	
		
			
			|  | 61 | +# Update sqlalchemy.url
 | 
	
		
			
			|  | 62 | +sed -i "s/\(sqlalchemy.url *= *\).*/\\sqlalchemy.url = $DATABASE_TYPE:\/\/$DATABASE_USER:$DATABASE_PASSWORD@$DATABASE_HOST:$DATABASE_PORT\/$DATABASE_NAME$DATABASE_SUFFIX/" /etc/tracim/config.ini
 | 
	
		
			
			| 66 | 63 |  
 | 
	
		
			
			| 67 | 64 |  # Initialize database if it is a fresh install
 | 
	
		
			
			| 68 |  | -if [ "$FRESH_INSTALL" = true ] ; then
 | 
	
		
			
			| 69 |  | -    echo "Init tracim database"
 | 
	
		
			
			|  | 65 | +if [ "$DATABASE_TYPE" = postgresql ] ; then
 | 
	
		
			
			|  | 66 | +    TEST_TABLE=$(PGPASSWORD="$DATABASE_PASSWORD" psql -U ${DATABASE_USER} -h ${DATABASE_HOST} -d ${DATABASE_NAME} -t -c "SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'content' );")
 | 
	
		
			
			|  | 67 | +    if [ ${TEST_TABLE} = f ] ; then
 | 
	
		
			
			|  | 68 | +        INIT_DATABASE=true
 | 
	
		
			
			|  | 69 | +    fi
 | 
	
		
			
			|  | 70 | +fi
 | 
	
		
			
			|  | 71 | +
 | 
	
		
			
			|  | 72 | +if [ "$INIT_DATABASE" = true ] ; then
 | 
	
		
			
			| 70 | 73 |      cd /tracim/tracim/ && gearbox setup-app -c config.ini
 | 
	
		
			
			| 71 | 74 |  fi
 | 
	
		
			
			| 72 | 75 |  
 |