[Bast-commits] r9194 - in DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema: . Journal Journal/DB

frew at dev.catalyst.perl.org frew at dev.catalyst.perl.org
Wed Apr 21 22:29:50 GMT 2010


Author: frew
Date: 2010-04-21 23:29:49 +0100 (Wed, 21 Apr 2010)
New Revision: 9194

Modified:
   DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal.pm
   DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB.pm
   DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditHistory.pm
   DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditLog.pm
   DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeLog.pm
   DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeSet.pm
Log:
RT56175: allow tables to have a prefix

Modified: DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditHistory.pm
===================================================================
--- DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditHistory.pm	2010-04-21 21:49:22 UTC (rev 9193)
+++ DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditHistory.pm	2010-04-21 22:29:49 UTC (rev 9194)
@@ -3,7 +3,7 @@
 use base 'DBIx::Class::Core';
 
 sub journal_define_table {
-    my ( $class, $source ) = @_;
+    my ( $class, $source, $schema_class ) = @_;
 
     $class->table($source->name . '_audit_history');
 
@@ -40,7 +40,7 @@
         $class->add_column($column => \%hist_info);
     }
 
-    $class->belongs_to(change => 'DBIx::Class::Schema::Journal::DB::ChangeLog', 'audit_change_id');
+    $class->belongs_to(change => "${schema_class}::ChangeLog", 'audit_change_id');
 }
 
 1;

Modified: DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditLog.pm
===================================================================
--- DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditLog.pm	2010-04-21 21:49:22 UTC (rev 9193)
+++ DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/AuditLog.pm	2010-04-21 22:29:49 UTC (rev 9194)
@@ -3,7 +3,7 @@
 use base 'DBIx::Class::Core';
 
 sub journal_define_table {
-    my ( $class, $source ) = @_;
+    my ( $class, $source, $schema_class ) = @_;
 
     $class->table($source->name . '_audit_log');
 
@@ -26,8 +26,8 @@
 
     $class->set_primary_key( $source->primary_columns );
 
-    $class->belongs_to(created => 'DBIx::Class::Schema::Journal::DB::ChangeLog', 'create_id');
-    $class->belongs_to(deleted => 'DBIx::Class::Schema::Journal::DB::ChangeLog', 'delete_id');
+    $class->belongs_to(created => "${schema_class}::ChangeLog", 'create_id');
+    $class->belongs_to(deleted => "${schema_class}::ChangeLog", 'delete_id');
 }
 
 1;

Modified: DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeLog.pm
===================================================================
--- DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeLog.pm	2010-04-21 21:49:22 UTC (rev 9193)
+++ DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeLog.pm	2010-04-21 22:29:49 UTC (rev 9194)
@@ -2,33 +2,37 @@
 
 use base 'DBIx::Class::Core';
 
-__PACKAGE__->load_components(qw/Ordered/);
-__PACKAGE__->table('changelog');
+sub journal_define_table {
+    my ( $class, $schema_class, $prefix ) = @_;
+    
+    $class->load_components(qw/Ordered/);
+    $class->table($prefix . 'changelog');
+    
+    $class->add_columns(
+    	ID => {
+    		data_type => 'integer',
+    		is_auto_increment => 1,
+    		is_primary_key => 1,
+    		is_nullable => 0,
+    	},
+    		changeset_id => {
+    		data_type => 'integer',
+    		is_nullable => 0,
+    		is_foreign_key => 1,
+    	},
+    	order_in => {
+    		data_type => 'integer',
+    		is_nullable => 0,
+    	},
+    );
+    
+    
+    $class->set_primary_key('ID');
+    $class->add_unique_constraint('setorder', [ qw/changeset_id order_in/ ]);
+    $class->belongs_to('changeset', "${schema_class}::ChangeSet", 'changeset_id');
+    
+    $class->position_column('order_in');
+    $class->grouping_column('changeset_id');
+}
 
-__PACKAGE__->add_columns(
-	ID => {
-		data_type => 'integer',
-		is_auto_increment => 1,
-		is_primary_key => 1,
-		is_nullable => 0,
-	},
-		changeset_id => {
-		data_type => 'integer',
-		is_nullable => 0,
-		is_foreign_key => 1,
-	},
-	order_in => {
-		data_type => 'integer',
-		is_nullable => 0,
-	},
-);
-
-
-__PACKAGE__->set_primary_key('ID');
-__PACKAGE__->add_unique_constraint('setorder', [ qw/changeset_id order_in/ ]);
-__PACKAGE__->belongs_to('changeset', 'DBIx::Class::Schema::Journal::DB::ChangeSet', 'changeset_id');
-
- __PACKAGE__->position_column('order_in');
- __PACKAGE__->grouping_column('changeset_id');
-
 1;

Modified: DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeSet.pm
===================================================================
--- DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeSet.pm	2010-04-21 21:49:22 UTC (rev 9193)
+++ DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB/ChangeSet.pm	2010-04-21 22:29:49 UTC (rev 9194)
@@ -2,44 +2,48 @@
 
 use base 'DBIx::Class::Core';
 
-__PACKAGE__->load_components(qw/InflateColumn::DateTime/);
-__PACKAGE__->table('changeset');
+sub journal_define_table {
+    my ( $class, $schema_class, $prefix ) = @_;
+    
+    $class->load_components(qw/InflateColumn::DateTime/);
+    $class->table($prefix . 'changeset');
+    
+    $class->add_columns(
+    	ID => {
+    		data_type => 'integer',
+    		is_auto_increment => 1,
+    		is_primary_key => 1,
+    		is_nullable => 0,
+    	},
+    	user_id => {
+    		data_type => 'integer',
+    		is_nullable => 1,
+    		is_foreign_key => 1,
+    	},
+    	set_date => {
+    		data_type => 'timestamp',
+    		is_nullable => 0,
+    	},
+    	session_id => {
+    		data_type => 'varchar',
+    		size => 255,
+    		is_nullable => 1,
+    	},
+    );
+    
+    $class->set_primary_key('ID');
+}
 
-__PACKAGE__->add_columns(
-	ID => {
-		data_type => 'integer',
-		is_auto_increment => 1,
-		is_primary_key => 1,
-		is_nullable => 0,
-	},
-	user_id => {
-		data_type => 'integer',
-		is_nullable => 1,
-		is_foreign_key => 1,
-	},
-	set_date => {
-		data_type => 'timestamp',
-		is_nullable => 0,
-	},
-	session_id => {
-		data_type => 'varchar',
-		size => 255,
-		is_nullable => 1,
-	},
-);
-
 sub new {
     my $self = shift->next::method(@_);
-	 # I think we should not do the following and
-	 # instead use DBIx::Class::TimeStamp.  If I
-	 # can think of a good way (passing a version on
-	 # import?) to do it and retain backcompat I will.
-	 #
-	 # --fREW, 01-27-2010
+    # I think we should not do the following and
+    # instead use DBIx::Class::TimeStamp.  If I
+    # can think of a good way (passing a version on
+    # import?) to do it and retain backcompat I will.
+    #
+    # --fREW, 01-27-2010
     $self->set_date(gmtime);
     return $self;
 }
 
-__PACKAGE__->set_primary_key('ID');
-
 1;

Modified: DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB.pm
===================================================================
--- DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB.pm	2010-04-21 21:49:22 UTC (rev 9193)
+++ DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal/DB.pm	2010-04-21 22:29:49 UTC (rev 9194)
@@ -7,10 +7,10 @@
 __PACKAGE__->mk_group_accessors( simple => 'current_session' );
 __PACKAGE__->mk_group_accessors( simple => '_current_changeset_container' );
 
-DBIx::Class::Schema::Journal::DB->load_classes(qw(ChangeSet ChangeLog));
-
 require DBIx::Class::Schema::Journal::DB::AuditLog;
 require DBIx::Class::Schema::Journal::DB::AuditHistory;
+require DBIx::Class::Schema::Journal::DB::ChangeLog;
+require DBIx::Class::Schema::Journal::DB::ChangeSet;
 
 sub _current_changeset {
     my $self = shift;

Modified: DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal.pm
===================================================================
--- DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal.pm	2010-04-21 21:49:22 UTC (rev 9193)
+++ DBIx-Class-Journal/1.000/trunk/lib/DBIx/Class/Schema/Journal.pm	2010-04-21 22:29:49 UTC (rev 9194)
@@ -17,6 +17,7 @@
 __PACKAGE__->mk_classdata('journal_component');
 __PACKAGE__->mk_classdata('journal_components');
 __PACKAGE__->mk_classdata('journal_nested_changesets');
+__PACKAGE__->mk_classdata('journal_prefix');
 
 use strict;
 use warnings;
@@ -38,7 +39,21 @@
 
 
     my $comp = $self->journal_component || "Journal";
+    
+    my $prefix = $self->journal_prefix || '';
+    foreach my $audit (qw(ChangeSet ChangeLog)) {
+        my $class = blessed($proto) . "::$audit";
 
+        Class::C3::Componentised->inject_base($class, "DBIx::Class::Schema::Journal::DB::$audit");
+
+        $class->journal_define_table(blessed($proto), $prefix);
+
+        $proto->register_class($audit, $class);
+
+        $self->register_class($audit, $class)
+            if $self->journal_copy_sources;
+    }
+
     ## Create auditlog+history per table
     my %j_sources = map { $_ => 1 } $self->journal_sources
        ? @{$self->journal_sources}
@@ -114,7 +129,7 @@
 
         Class::C3::Componentised->inject_base($class, "DBIx::Class::Schema::Journal::DB::$audit");
 
-        $class->journal_define_table($source);
+        $class->journal_define_table($source, blessed($journal_schema));
 
         $journal_schema->register_class($audit_source, $class);
 
@@ -175,5 +190,4 @@
     $self->_journal_schema->current_session($sessionid);
 }
 
-
 1;




More information about the Bast-commits mailing list