diff options
author | ivan <ivan> | 2002-03-04 12:48:49 +0000 |
---|---|---|
committer | ivan <ivan> | 2002-03-04 12:48:49 +0000 |
commit | 239484572a9191100993bb1e85ffe8834689feb0 (patch) | |
tree | 94c61ae16e6507918272721acd58791129ba1f99 /bin | |
parent | dac484e8356be5b235cacebe83059b7eb6588c13 (diff) |
*** empty log message ***
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/create-history-tables | 78 | ||||
-rwxr-xr-x | bin/fs-radius-add-check | 9 | ||||
-rwxr-xr-x | bin/fs-radius-add-reply | 11 | ||||
-rwxr-xr-x | bin/fs-setup | 59 |
4 files changed, 151 insertions, 6 deletions
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"; +} + diff --git a/bin/fs-radius-add-check b/bin/fs-radius-add-check index 35f4d3262..4e4769e58 100755 --- a/bin/fs-radius-add-check +++ b/bin/fs-radius-add-check @@ -39,12 +39,21 @@ my($char_d) = 80; #default maxlength for text fields ### foreach my $attribute ( @attributes ) { + my $statement = "ALTER TABLE svc_acct ADD COLUMN rc_$attribute varchar($char_d) NULL"; my $sth = $dbh->prepare( $statement ) or warn "Error preparing $statement: ". $dbh->errstr; my $rc = $sth->execute or warn "Error executing $statement: ". $sth->errstr; + + $statement = + "ALTER TABLE h_svc_acct ADD COLUMN rc_$attribute varchar($char_d) NULL"; + $sth = $dbh->prepare( $statement ) + or warn "Error preparing $statement: ". $dbh->errstr; + $rc = $sth->execute + or warn "Error executing $statement: ". $sth->errstr; + } $dbh->commit or die $dbh->errstr; diff --git a/bin/fs-radius-add-reply b/bin/fs-radius-add-reply index 6b9a39e49..3de01374f 100755 --- a/bin/fs-radius-add-reply +++ b/bin/fs-radius-add-reply @@ -39,12 +39,21 @@ my($char_d) = 80; #default maxlength for text fields ### foreach my $attribute ( @attributes ) { + my $statement = "ALTER TABLE svc_acct ADD COLUMN radius_$attribute varchar($char_d) NULL"; my $sth = $dbh->prepare( $statement ) or warn "Error preparing $statement: ". $dbh->errstr; - $sth->execute + my $rc = $sth->execute or warn "Error executing $statement: ". $sth->errstr; + + $statement = + "ALTER TABLE h_svc_acct ADD COLUMN radius_$attribute varchar($char_d) NULL"; + $sth = $dbh->prepare( $statement ) + or warn "Error preparing $statement: ". $dbh->errstr; + $rc = $sth->execute + or warn "Error executing $statement: ". $sth->errstr; + } $dbh->commit or die $dbh->errstr; diff --git a/bin/fs-setup b/bin/fs-setup index 62c2cd490..7ee04a5d8 100755 --- a/bin/fs-setup +++ b/bin/fs-setup @@ -1,13 +1,13 @@ #!/usr/bin/perl -Tw # -# $Id: fs-setup,v 1.82 2002-02-27 22:39:14 ivan Exp $ +# $Id: fs-setup,v 1.83 2002-03-04 12:48:49 ivan Exp $ #to delay loading dbdef until we're ready BEGIN { $FS::Record::setup_hack = 1; } use strict; use DBI; -use DBIx::DBSchema 0.19; +use DBIx::DBSchema 0.20; use DBIx::DBSchema::Table; use DBIx::DBSchema::Column; use DBIx::DBSchema::ColGroup::Unique; @@ -160,6 +160,56 @@ foreach $attribute (@check_attributes) { # } #} +#create history tables (false laziness w/create-history-tables) +foreach my $table ( grep { ! /^h_/ } $dbdef->tables ) { + my $tableobj = $dbdef->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 + ], + } ); + $dbdef->addtable($h_tableobj); +} + #important $dbdef->save($dbdef_file); &FS::Record::reload_dbdef($dbdef_file); @@ -173,10 +223,9 @@ my($dbh)=adminsuidsetup $user; #create tables $|=1; -my @sql = $dbdef->sql($dbh); foreach my $statement ( $dbdef->sql($dbh) ) { $dbh->do( $statement ) - or die "CREATE error: ",$dbh->errstr, "\ndoing statement: $statement"; + or die "CREATE error: ". $dbh->errstr. "\ndoing statement: $statement"; } #not really sample data (and shouldn't default to US) @@ -256,7 +305,7 @@ foreach my $aref ( } - +$dbh->commit or die $dbh->errstr; $dbh->disconnect or die $dbh->errstr; print "Freeside database initialized sucessfully\n"; |