#! /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