Added doc caveat about schema generators.
[dbsrgits/DBIx-Class-Tree.git] / lib / DBIx / Class / Tree / AdjacencyList.pm
index e14875f..4925416 100644 (file)
@@ -66,7 +66,7 @@ stop you from having multiple root nodes.
   __PACKAGE__->parent_column('parent_id');
 
 Declares the name of the column that contains the self-referential
-ID which defines the parent row.  This will create a has_many (children) 
+ID which defines the parent row.  This will create a has_many (children)
 and belongs_to (parent) relationship.
 
 This method also sets up an additional has_many relationship called
@@ -362,6 +362,29 @@ sub set_primary_key {
 1;
 __END__
 
+=head1 CAVEATS
+
+=head2 Generated schemas
+
+If you are using L<DBIx::Class::Schema/deploy> methods either directly
+or via L<DBIx::Class::DeploymentHandler> or L<DBIx::Migration>, you
+will need the following L<SQL::Translator> hook to remove the index
+from C<parent_column>.
+
+  sub sqlt_deploy_hook {
+      my ($self, $sqlt_table) = @_;
+
+      foreach my $index ($sqlt_table->get_indices) {
+          if ($index->fields->[0] eq $self->parent_column) {
+              $sqlt_table->drop_index($index->name);
+              last;
+          }
+      }
+  }
+
+ALso see L<DBIx::Class::Manual::Cookbook/Adding Indexes And Functions To
+Your SQL> for other examples.
+
 =head1 INHERITED METHODS
 
 =head2 DBIx::Class