import-account

48 lines | 2.2 kB Blame History Raw Download
#! /usr/bin/env bash

###################################################################################
#                                                                                 #
#                   Copyright 2010-2012 Ning, Inc.                                #
#                                                                                 #
#      Ning licenses this file to you under the Apache License, version 2.0       #
#      (the "License"); you may not use this file except in compliance with the   #
#      License.  You may obtain a copy of the License at:                         #
#                                                                                 #
#          http://www.apache.org/licenses/LICENSE-2.0                             #
#                                                                                 #
#      Unless required by applicable law or agreed to in writing, software        #
#      distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
#      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the  #
#      License for the specific language governing permissions and limitations    #
#      under the License.                                                         #
#                                                                                 #
###################################################################################

set -e

# Killbill server
KILLBILL_URL=http://127.0.0.1:8080
# Destination database
DATABASE=killbill
USERNAME=root
PASSWORD=root
# Temporary directory
TMP_DIR=/var/tmp

WHO=`whoami`
cd $TMP_DIR
rm -f xa*
curl $KILLBILL_URL/1.0/kb/export/$1 -H"X-Killbill-CreatedBy: $WHO" | split -p '--'  --
for i in `ls xa*`; do
    table_name=$(cat $i | head -1 | awk '{print $2}')
    # Put \N for empty columns to set values to NULL, not ''
    tmp=${table_name}.tmp
    grep ',,' $table_name > /dev/null
    while [[ $? = 0 ]]; do
        cat $table_name | sed s/,,/,\\\\N,/ > $tmp
        mv $tmp $table_name
        grep ',,' $table_name > /dev/null
    done
    mysqlimport --ignore-lines=1 --fields-terminated-by=, --fields-enclosed-by=\" --verbose -u$USERNAME -p$PASSWORD $DATABASE $TMP_DIR/$table_name
done