Check in. Untested.
This commit is contained in:
commit
6e248fcd81
3 changed files with 55 additions and 0 deletions
16
main.sh
Executable file
16
main.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -n "$1" ] exit 1
|
||||||
|
|
||||||
|
./splitDatabase.pl < $1
|
||||||
|
|
||||||
|
ls -m1|grep "_dump.sql" > databaseFiles.txt
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
databaseName=`echo $line|awk -F '_dump.sql' '{print $1}'`
|
||||||
|
echo $databaseName
|
||||||
|
mkdir $databaseName
|
||||||
|
sh splitTable.sh $line $databaseName
|
||||||
|
done < databaseFiles.txt
|
||||||
|
rm -f databaseFiles.txt
|
||||||
|
|
29
splitDatabase.pl
Normal file
29
splitDatabase.pl
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
my $dbfile;
|
||||||
|
my $dbname = q{};
|
||||||
|
my $header = q{};
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
|
||||||
|
if (m/-- Current Database\: \`([-\w]+)\`/) {
|
||||||
|
if (defined $dbfile && tell $dbfile != -1) {
|
||||||
|
close $dbfile or die "Could not close file!"
|
||||||
|
}
|
||||||
|
$dbname = $1;
|
||||||
|
open $dbfile, ">>", "$1_dump.sql" or die "Could not create file!";
|
||||||
|
print $dbfile $header;
|
||||||
|
print "Writing file $1_dump.sql ...\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined $dbfile && tell $dbfile != -1) {
|
||||||
|
print $dbfile $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $dbname) { $header .= $_; }
|
||||||
|
|
||||||
|
}
|
||||||
|
close $dbfile or die "Could not close file!"
|
10
splitTable.sh
Normal file
10
splitTable.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
DUMP_FILE=$1
|
||||||
|
TARGET_FOLDER=$2
|
||||||
|
|
||||||
|
for tablename in $(grep "Table structure for table " $1 | awk -F"\`" {'print $2'})
|
||||||
|
do
|
||||||
|
sed -n "/^- Table structure for table \`$tablename\`/,/^- Table structure for table/p" $1 > $TARGET_FOLDER/$tablename.sql
|
||||||
|
TABLE_COUNT=$((TABLE_COUNT+1))
|
||||||
|
done;
|
||||||
|
|
||||||
|
rm -f $1
|
Loading…
Reference in a new issue