OSDN Git Service

utils/db_scripts/create_tables.pl: execute sql files filename order
authorhylom <hylom@users.sourceforge.jp>
Mon, 17 Oct 2016 12:05:00 +0000 (21:05 +0900)
committerhylom <hylom@users.sourceforge.jp>
Mon, 17 Oct 2016 12:05:00 +0000 (21:05 +0900)
src/utils/db_scripts/create_tables.pl

index 20bc6b3..d578c6e 100755 (executable)
@@ -83,19 +83,25 @@ sub exec_sql {
     my $target = shift;
 
     opendir(my $dh, $target) || die "cannot opendir $target: $!\n";
-    while(my $fname = readdir $dh) {
+    my @files;
+    while (my $fname = readdir $dh) {
         if ($fname =~ m/^\./) {
             next;
         }
         if ($fname =~ m/^.*\.sql$/) {
-            print "execute $fname...\n";
-            my $sql = get_sql_contents($target, $fname);
-            # my $sth = $dbh->prepare($sql);
-            # my $result = $sth->execute;
-            my $result = $dbh->do($sql);
-            if (!$result) {
-                print "sql execute error: $!\n";
-            }
+            push @files, $fname;
+        }
+    }
+    @files = sort @files;
+
+    while (my $fname = shift @files) {
+        print "execute $fname...\n";
+        my $sql = get_sql_contents($target, $fname);
+        # my $sth = $dbh->prepare($sql);
+        # my $result = $sth->execute;
+        my $result = $dbh->do($sql);
+        if (!$result) {
+            print "sql execute error: $!\n";
         }
     }
 }