From 239484572a9191100993bb1e85ffe8834689feb0 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 4 Mar 2002 12:48:49 +0000 Subject: *** empty log message *** --- bin/create-history-tables | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 bin/create-history-tables (limited to 'bin/create-history-tables') diff --git a/bin/create-history-tables b/bin/create-history-tables new file mode 100755 index 000000000..fb4c866c6 --- /dev/null +++ b/bin/create-history-tables @@ -0,0 +1,78 @@ +#!/usr/bin/perl -Tw + +use strict; +use DBI; +use DBIx::DBSchema 0.20; +use DBIx::DBSchema::Table; +use DBIx::DBSchema::Column; +use DBIx::DBSchema::ColGroup::Unique; +use DBIx::DBSchema::ColGroup::Index; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(dbdef); + +my $user = shift or die &usage; +my $dbh = adminsuidsetup $user; + +my $schema = dbdef(); + +#false laziness w/fs-setup +foreach my $table ( grep { ! /^h_/ } $schema->tables ) { + my $tableobj = $schema->table($table); + my $h_tableobj = DBIx::DBSchema::Table->new( { + name => "h_$table", + primary_key => 'historynum', + unique => DBIx::DBSchema::ColGroup::Unique->new( [] ), + 'index' => DBIx::DBSchema::ColGroup::Index->new( [ + @{$tableobj->unique->lol_ref}, + @{$tableobj->index->lol_ref} + ] ), + columns => [ + DBIx::DBSchema::Column->new( { + 'name' => 'historynum', + 'type' => 'serial', + 'null' => 'NOT NULL', + 'length' => '', + 'default' => '', + 'local' => '', + } ), + DBIx::DBSchema::Column->new( { + 'name' => 'history_date', + 'type' => 'int', + 'null' => 'NULL', + 'length' => '', + 'default' => '', + 'local' => '', + } ), + DBIx::DBSchema::Column->new( { + 'name' => 'history_user', + 'type' => 'varchar', + 'null' => 'NOT NULL', + 'length' => '80', + 'default' => '', + 'local' => '', + } ), + DBIx::DBSchema::Column->new( { + 'name' => 'history_action', + 'type' => 'varchar', + 'null' => 'NOT NULL', + 'length' => '80', + 'default' => '', + 'local' => '', + } ), + map { $tableobj->column($_) } $tableobj->columns + ], + } ); + foreach my $statement ( $h_tableobj->sql_create_table($dbh) ) { + $dbh->do( $statement ) + or die "CREATE error: ". $dbh->errstr. "\ndoing statement: $statement"; + } + +} + +$dbh->commit or die $dbh->errstr; +$dbh->disconnect or die $dbh->errstr; + +sub usage { + die "Usage:\n create-history-tables user\n"; +} + -- cgit v1.2.1 From 20bb426a02c0ea54d8feaea7c5da51735ab70293 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 22 Mar 2002 18:56:33 +0000 Subject: RADIUS groups on the way! --- bin/create-history-tables | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'bin/create-history-tables') diff --git a/bin/create-history-tables b/bin/create-history-tables index fb4c866c6..9ed641efd 100755 --- a/bin/create-history-tables +++ b/bin/create-history-tables @@ -16,8 +16,13 @@ my $dbh = adminsuidsetup $user; my $schema = dbdef(); #false laziness w/fs-setup -foreach my $table ( grep { ! /^h_/ } $schema->tables ) { - my $tableobj = $schema->table($table); +my @tables = scalar(@ARGV) + ? @ARGV + : grep { ! /^h_/ } $schema->tables; +foreach my $table ( @tables ) { + warn "creating history table for $table\n"; + my $tableobj = $schema->table($table) + or die "unknown talble $table (did you run dbdef-create?)\n"; my $h_tableobj = DBIx::DBSchema::Table->new( { name => "h_$table", primary_key => 'historynum', @@ -73,6 +78,6 @@ $dbh->commit or die $dbh->errstr; $dbh->disconnect or die $dbh->errstr; sub usage { - die "Usage:\n create-history-tables user\n"; + die "Usage:\n create-history-tables user [ table table ... ] \n"; } -- cgit v1.2.1 From 6fd7d458e1fcd100546168ec3992182d628d89ce Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 26 Mar 2002 13:04:31 +0000 Subject: error message typo --- bin/create-history-tables | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/create-history-tables') diff --git a/bin/create-history-tables b/bin/create-history-tables index 9ed641efd..d37d682d8 100755 --- a/bin/create-history-tables +++ b/bin/create-history-tables @@ -22,7 +22,7 @@ my @tables = scalar(@ARGV) foreach my $table ( @tables ) { warn "creating history table for $table\n"; my $tableobj = $schema->table($table) - or die "unknown talble $table (did you run dbdef-create?)\n"; + or die "unknown table $table (did you run dbdef-create?)\n"; my $h_tableobj = DBIx::DBSchema::Table->new( { name => "h_$table", primary_key => 'historynum', -- cgit v1.2.1 From 8965012fa53fd05d851d2f5abed4e056ab758797 Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 21 Sep 2002 11:17:39 +0000 Subject: all taxes now have names. closes: Bug#15 --- bin/create-history-tables | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'bin/create-history-tables') diff --git a/bin/create-history-tables b/bin/create-history-tables index d37d682d8..33eb0e5a3 100755 --- a/bin/create-history-tables +++ b/bin/create-history-tables @@ -2,7 +2,7 @@ use strict; use DBI; -use DBIx::DBSchema 0.20; +use DBIx::DBSchema 0.21; use DBIx::DBSchema::Table; use DBIx::DBSchema::Column; use DBIx::DBSchema::ColGroup::Unique; @@ -64,7 +64,16 @@ foreach my $table ( @tables ) { 'default' => '', 'local' => '', } ), - map { $tableobj->column($_) } $tableobj->columns + map { + my $column = $tableobj->column($_); + $column->type('int') + if $column->type eq 'serial'; + $column->default('') + if $column->default =~ /^nextval\(/i; + ( my $local = $column->local ) =~ s/AUTO_INCREMENT//i; + $column->local($local); + $column; + } $tableobj->columns ], } ); foreach my $statement ( $h_tableobj->sql_create_table($dbh) ) { -- cgit v1.2.1 From eef1e8261ea49fe7c531598cbfca064ad3447a5e Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 22 Jun 2003 09:04:55 +0000 Subject: skip history tables that exist already; easier to re-run now --- bin/create-history-tables | 1 + 1 file changed, 1 insertion(+) (limited to 'bin/create-history-tables') diff --git a/bin/create-history-tables b/bin/create-history-tables index 33eb0e5a3..8d419d287 100755 --- a/bin/create-history-tables +++ b/bin/create-history-tables @@ -20,6 +20,7 @@ my @tables = scalar(@ARGV) ? @ARGV : grep { ! /^h_/ } $schema->tables; foreach my $table ( @tables ) { + next if grep { /^h_$table/ } $schema->tables; warn "creating history table for $table\n"; my $tableobj = $schema->table($table) or die "unknown table $table (did you run dbdef-create?)\n"; -- cgit v1.2.1 From 8f4fddbaa123a4baee6fb1df4d2abf857f22a04c Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 22 Jun 2003 09:11:11 +0000 Subject: skip pg_ tables also (ewww, showing up in reverse-engineered schema) --- bin/create-history-tables | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/create-history-tables') diff --git a/bin/create-history-tables b/bin/create-history-tables index 8d419d287..39248bf3f 100755 --- a/bin/create-history-tables +++ b/bin/create-history-tables @@ -18,7 +18,7 @@ my $schema = dbdef(); #false laziness w/fs-setup my @tables = scalar(@ARGV) ? @ARGV - : grep { ! /^h_/ } $schema->tables; + : grep { ! /^(h|pg)_/ } $schema->tables; foreach my $table ( @tables ) { next if grep { /^h_$table/ } $schema->tables; warn "creating history table for $table\n"; -- cgit v1.2.1