[Bast-commits] r7988 - in
branches/DBIx-Class-Schema-Loader/back-compat: .
lib/DBIx/Class/Schema lib/DBIx/Class/Schema/Loader
lib/DBIx/Class/Schema/Loader/DBI
lib/DBIx/Class/Schema/Loader/DBI/ODBC
lib/DBIx/Class/Schema/Loader/DBI/Sybase t t/lib
caelum at dev.catalyst.perl.org
caelum at dev.catalyst.perl.org
Sun Nov 29 18:32:00 GMT 2009
Author: caelum
Date: 2009-11-29 18:32:00 +0000 (Sun, 29 Nov 2009)
New Revision: 7988
Removed:
branches/DBIx-Class-Schema-Loader/back-compat/README
Modified:
branches/DBIx-Class-Schema-Loader/back-compat/
branches/DBIx-Class-Schema-Loader/back-compat/Changes
branches/DBIx-Class-Schema-Loader/back-compat/Makefile.PL
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/Base.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC/Microsoft_SQL_Server.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Common.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Microsoft_SQL_Server.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm
branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/RelBuilder.pm
branches/DBIx-Class-Schema-Loader/back-compat/t/12pg_common.t
branches/DBIx-Class-Schema-Loader/back-compat/t/20invocations.t
branches/DBIx-Class-Schema-Loader/back-compat/t/22dump.t
branches/DBIx-Class-Schema-Loader/back-compat/t/23dumpmore.t
branches/DBIx-Class-Schema-Loader/back-compat/t/lib/dbixcsl_common_tests.pm
Log:
r21690 at hlagh (orig r7985): caelum | 2009-11-29 09:51:18 -0500
added patch to generate POD from postgres by Andrey Kostenko (GUGU)
r21691 at hlagh (orig r7986): caelum | 2009-11-29 12:49:40 -0500
fix table count test in common tests, inc version for dev release, add extra tests for table/column comments for Pg, make tests less noisy
r21692 at hlagh (orig r7987): caelum | 2009-11-29 13:17:04 -0500
new dev release
Property changes on: branches/DBIx-Class-Schema-Loader/back-compat
___________________________________________________________________
Name: svk:merge
- 46bc3436-8211-0410-8564-d96f7a728040:/local/DBIx-Class-Schema-Loader/branches/common-dump:37173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/current:7970
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/mssql_tweaks:7407
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/odbc-mssql:6439
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/trunk/DBIx-Class-Schema-Loader:5726
+ 46bc3436-8211-0410-8564-d96f7a728040:/local/DBIx-Class-Schema-Loader/branches/common-dump:37173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/current:7987
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/mssql_tweaks:7407
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-Schema-Loader/odbc-mssql:6439
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/trunk/DBIx-Class-Schema-Loader:5726
Modified: branches/DBIx-Class-Schema-Loader/back-compat/Changes
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/Changes 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/Changes 2009-11-29 18:32:00 UTC (rev 7988)
@@ -1,5 +1,7 @@
Revision history for Perl extension DBIx::Class::Schema::Loader
+0.04999_11 2009-11-29 18:08:46
+ - added patch to generate POD from postgres by Andrey Kostenko (GUGU)
- added test for norewrite feature
- fix default_value for MSSQL
Modified: branches/DBIx-Class-Schema-Loader/back-compat/Makefile.PL
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/Makefile.PL 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/Makefile.PL 2009-11-29 18:32:00 UTC (rev 7988)
@@ -125,10 +125,12 @@
}
# Rebuild README for maintainers
-if(-e 'MANIFEST.SKIP') {
+if ($Module::Install::AUTHOR) {
system("pod2text lib/DBIx/Class/Schema/Loader.pm > README");
}
+realclean_files 'README';
+
resources 'IRC' => 'irc://irc.perl.org/#dbix-class';
resources 'license' => 'http://dev.perl.org/licenses/';
resources 'repository' => 'http://dev.catalyst.perl.org/repos/bast/branches/DBIx-Class-Schema-Loader/current/';
Deleted: branches/DBIx-Class-Schema-Loader/back-compat/README
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/README 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/README 2009-11-29 18:32:00 UTC (rev 7988)
@@ -1,241 +0,0 @@
-NAME
- DBIx::Class::Schema::Loader - Dynamic definition of a
- DBIx::Class::Schema
-
-SYNOPSIS
- ### use this module to generate a set of class files
-
- # in a script
- use DBIx::Class::Schema::Loader qw/ make_schema_at /;
- make_schema_at(
- 'My::Schema',
- { debug => 1,
- dump_directory => './lib',
- },
- [ 'dbi:Pg:dbname="foo"', 'myuser', 'mypassword' ],
- );
-
- # from the command line or a shell script with dbicdump (distributed
- # with this module). Do `perldoc dbicdump` for usage.
- dbicdump -o dump_directory=./lib \
- -o debug=1 \
- My::Schema \
- 'dbi:Pg:dbname=foo' \
- myuser \
- mypassword
-
- ### or generate and load classes at runtime
- # note: this technique is not recommended
- # for use in production code
-
- package My::Schema;
- use base qw/DBIx::Class::Schema::Loader/;
-
- __PACKAGE__->loader_options(
- constraint => '^foo.*',
- # debug => 1,
- );
-
- #### in application code elsewhere:
-
- use My::Schema;
-
- my $schema1 = My::Schema->connect( $dsn, $user, $password, $attrs);
- # -or-
- my $schema1 = "My::Schema"; $schema1->connection(as above);
-
-DESCRIPTION
- DBIx::Class::Schema::Loader automates the definition of a
- DBIx::Class::Schema by scanning database table definitions and setting
- up the columns, primary keys, and relationships.
-
- DBIx::Class::Schema::Loader currently supports only the DBI storage
- type. It has explicit support for DBD::Pg, DBD::mysql, DBD::DB2,
- DBD::SQLite, and DBD::Oracle. Other DBI drivers may function to a
- greater or lesser degree with this loader, depending on how much of the
- DBI spec they implement, and how standard their implementation is.
-
- Patches to make other DBDs work correctly welcome.
-
- See DBIx::Class::Schema::Loader::DBI::Writing for notes on writing your
- own vendor-specific subclass for an unsupported DBD driver.
-
- This module requires DBIx::Class 0.07006 or later, and obsoletes the
- older DBIx::Class::Loader.
-
- This module is designed more to get you up and running quickly against
- an existing database, or to be effective for simple situations, rather
- than to be what you use in the long term for a complex database/project.
-
- That being said, transitioning your code from a Schema generated by this
- module to one that doesn't use this module should be straightforward and
- painless, so don't shy away from it just for fears of the transition
- down the road.
-
-METHODS
- loader_class
- Argument: $loader_class
-
- Set the loader class to be instantiated when "connection" is called. If
- the classname starts with "::", "DBIx::Class::Schema::Loader" is
- prepended. Defaults to "storage_type" in DBIx::Class::Schema (which must
- start with "::" when using DBIx::Class::Schema::Loader).
-
- This is mostly useful for subclassing existing loaders or in conjunction
- with "dump_to_dir".
-
- loader_options
- Argument: \%loader_options
-
- Example in Synopsis above demonstrates a few common arguments. For
- detailed information on all of the arguments, most of which are only
- useful in fairly complex scenarios, see the
- DBIx::Class::Schema::Loader::Base documentation.
-
- If you intend to use "loader_options", you must call "loader_options"
- before any connection is made, or embed the "loader_options" in the
- connection information itself as shown below. Setting "loader_options"
- after the connection has already been made is useless.
-
- connection
- Arguments: @args
- Return Value: $new_schema
-
- See "connection" in DBIx::Class::Schema for basic usage.
-
- If the final argument is a hashref, and it contains the keys
- "loader_options" or "loader_class", those keys will be deleted, and
- their values value will be used for the loader options or class,
- respectively, just as if set via the "loader_options" or "loader_class"
- methods above.
-
- The actual auto-loading operation (the heart of this module) will be
- invoked as soon as the connection information is defined.
-
- clone
- See "clone" in DBIx::Class::Schema.
-
- dump_to_dir
- Argument: $directory
-
- Calling this as a class method on either DBIx::Class::Schema::Loader or
- any derived schema class will cause all schemas to dump manual versions
- of themselves to the named directory when they are loaded. In order to
- be effective, this must be set before defining a connection on this
- schema class or any derived object (as the loading happens as soon as
- both a connection and loader_options are set, and only once per class).
-
- See "dump_directory" in DBIx::Class::Schema::Loader::Base for more
- details on the dumping mechanism.
-
- This can also be set at module import time via the import option
- "dump_to_dir:/foo/bar" to DBIx::Class::Schema::Loader, where "/foo/bar"
- is the target directory.
-
- Examples:
-
- # My::Schema isa DBIx::Class::Schema::Loader, and has connection info
- # hardcoded in the class itself:
- perl -MDBIx::Class::Schema::Loader=dump_to_dir:/foo/bar -MMy::Schema -e1
-
- # Same, but no hard-coded connection, so we must provide one:
- perl -MDBIx::Class::Schema::Loader=dump_to_dir:/foo/bar -MMy::Schema -e 'My::Schema->connection("dbi:Pg:dbname=foo", ...)'
-
- # Or as a class method, as long as you get it done *before* defining a
- # connection on this schema class or any derived object:
- use My::Schema;
- My::Schema->dump_to_dir('/foo/bar');
- My::Schema->connection(........);
-
- # Or as a class method on the DBIx::Class::Schema::Loader itself, which affects all
- # derived schemas
- use My::Schema;
- use My::OtherSchema;
- DBIx::Class::Schema::Loader->dump_to_dir('/foo/bar');
- My::Schema->connection(.......);
- My::OtherSchema->connection(.......);
-
- # Another alternative to the above:
- use DBIx::Class::Schema::Loader qw| dump_to_dir:/foo/bar |;
- use My::Schema;
- use My::OtherSchema;
- My::Schema->connection(.......);
- My::OtherSchema->connection(.......);
-
- make_schema_at
- Arguments: $schema_class_name, \%loader_options, \@connect_info
- Return Value: $schema_class_name
-
- This function creates a DBIx::Class schema from an existing RDBMS
- schema. With the "dump_directory" option, generates a set of DBIx::Class
- classes from an existing database schema read from the given dsn.
- Without a "dump_directory", creates schema classes in memory at runtime
- without generating on-disk class files.
-
- For a complete list of supported loader_options, see
- DBIx::Class::Schema::Loader::Base
-
- This function can be imported in the usual way, as illustrated in these
- Examples:
-
- # Simple example, creates as a new class 'New::Schema::Name' in
- # memory in the running perl interpreter.
- use DBIx::Class::Schema::Loader qw/ make_schema_at /;
- make_schema_at(
- 'New::Schema::Name',
- { debug => 1 },
- [ 'dbi:Pg:dbname="foo"','postgres' ],
- );
-
- # Inside a script, specifying a dump directory in which to write
- # class files
- use DBIx::Class::Schema::Loader qw/ make_schema_at /;
- make_schema_at(
- 'New::Schema::Name',
- { debug => 1, dump_directory => './lib' },
- [ 'dbi:Pg:dbname="foo"','postgres' ],
- );
-
- rescan
- Return Value: @new_monikers
-
- Re-scans the database for newly added tables since the initial load, and
- adds them to the schema at runtime, including relationships, etc. Does
- not process drops or changes.
-
- Returns a list of the new monikers added.
-
-KNOWN ISSUES
- Multiple Database Schemas
- Currently the loader is limited to working within a single schema (using
- the underlying RDBMS's definition of "schema"). If you have a
- multi-schema database with inter-schema relationships (which is easy to
- do in PostgreSQL or DB2 for instance), you currently can only
- automatically load the tables of one schema, and relationships to tables
- in other schemas will be silently ignored.
-
- At some point in the future, an intelligent way around this might be
- devised, probably by allowing the "db_schema" option to be an arrayref
- of schemas to load.
-
- In "normal" DBIx::Class::Schema usage, manually-defined source classes
- and relationships have no problems crossing vendor schemas.
-
-AUTHOR
- Brandon Black, "blblack at gmail.com"
-
- Based on DBIx::Class::Loader by Sebastian Riedel
-
- Based upon the work of IKEBE Tomohiro
-
-THANK YOU
- Matt S Trout, all of the #dbix-class folks, and everyone who's ever sent
- in a bug report or suggestion.
-
-LICENSE
- This library is free software; you can redistribute it and/or modify it
- under the same terms as Perl itself.
-
-SEE ALSO
- DBIx::Class, DBIx::Class::Manual::ExampleSchema
-
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/Base.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/Base.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/Base.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -16,7 +16,7 @@
use Class::Unload;
require DBIx::Class;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
__PACKAGE__->mk_ro_accessors(qw/
schema
@@ -996,15 +996,59 @@
my $self = shift;
my $class = shift;
my $method = shift;
-
+ if ( $method eq 'table' ) {
+ my ($table) = @_;
+ $self->_pod( $class, "=head1 NAME" );
+ my $table_descr = $class;
+ if ( $self->can('_table_comment') ) {
+ my $comment = $self->_table_comment($table);
+ $table_descr .= " - " . $comment if $comment;
+ }
+ $self->{_class2table}{ $class } = $table;
+ $self->_pod( $class, $table_descr );
+ $self->_pod_cut( $class );
+ } elsif ( $method eq 'add_columns' ) {
+ $self->_pod( $class, "=head1 ACCESSORS" );
+ my $i = 0;
+ foreach ( @_ ) {
+ $i++;
+ next unless $i % 2;
+ $self->_pod( $class, '=head2 ' . $_ );
+ my $comment;
+ $comment = $self->_column_comment( $self->{_class2table}{$class}, ($i - 1) / 2 + 1 ) if $self->can('_column_comment');
+ $self->_pod( $class, $comment ) if $comment;
+ }
+ $self->_pod_cut( $class );
+ } elsif ( $method =~ /^(belongs_to|has_many|might_have)$/ ) {
+ $self->_pod( $class, "=head1 RELATIONS" ) unless $self->{_relations_started} { $class } ;
+ my ( $accessor, $rel_class ) = @_;
+ $self->_pod( $class, "=head2 $accessor" );
+ $self->_pod( $class, 'Type: ' . $method );
+ $self->_pod( $class, "Related object: L<$rel_class>" );
+ $self->_pod_cut( $class );
+ $self->{_relations_started} { $class } = 1;
+ }
my $args = dump(@_);
$args = '(' . $args . ')' if @_ < 2;
my $stmt = $method . $args . q{;};
warn qq|$class\->$stmt\n| if $self->debug;
$self->_raw_stmt($class, '__PACKAGE__->' . $stmt);
+ return;
}
+# Stores a POD documentation
+sub _pod {
+ my ($self, $class, $stmt) = @_;
+ $self->_raw_stmt( $class, "\n" . $stmt );
+}
+
+sub _pod_cut {
+ my ($self, $class ) = @_;
+ $self->_raw_stmt( $class, "\n=cut\n" );
+}
+
+
# Store a raw source line for a class (for dumping purposes)
sub _raw_stmt {
my ($self, $class, $stmt) = @_;
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -9,7 +9,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC/Microsoft_SQL_Server.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC/Microsoft_SQL_Server.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC/Microsoft_SQL_Server.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/ODBC.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
@@ -35,6 +35,7 @@
$self->{db_schema} ||= 'public';
}
+
sub _table_uniq_info {
my ($self, $table) = @_;
@@ -95,6 +96,32 @@
return \@uniqs;
}
+sub _table_comment {
+ my ( $self, $table ) = @_;
+ my ($table_comment) = $self->schema->storage->dbh->selectrow_array(
+ q{SELECT obj_description(oid)
+ FROM pg_class
+ WHERE relname=? AND relnamespace=(
+ SELECT oid FROM pg_namespace WHERE nspname=?)
+ }, undef, $table, $self->db_schema
+ );
+ return $table_comment
+}
+
+
+sub _column_comment {
+ my ( $self, $table, $column_number ) = @_;
+ my ($table_oid) = $self->schema->storage->dbh->selectrow_array(
+ q{SELECT oid
+ FROM pg_class
+ WHERE relname=? AND relnamespace=(
+ SELECT oid FROM pg_namespace WHERE nspname=?)
+ }, undef, $table, $self->db_schema
+ );
+ return $self->schema->storage->dbh->selectrow_array('SELECT col_description(?,?)', undef, $table_oid,
+ $column_number );
+}
+
sub _extra_column_info {
my ($self, $info) = @_;
my %extra_info;
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -7,7 +7,7 @@
use Text::Balanced qw( extract_bracketed );
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Common.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Common.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Common.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -5,7 +5,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Microsoft_SQL_Server.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Microsoft_SQL_Server.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase/Microsoft_SQL_Server.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Sybase.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -9,7 +9,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/Writing.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -1,7 +1,7 @@
package DBIx::Class::Schema::Loader::DBI::Writing;
use strict;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
# Empty. POD only.
@@ -38,6 +38,16 @@
# concatenated if you wish.
}
+ sub _table_comment {
+ my ( $self, $table ) = @_;
+ return 'Comment';
+ }
+
+ sub _column_comment {
+ my ( $self, $table, $column_number ) = @_;
+ return 'Col. comment';
+ }
+
1;
=head1 DETAILS
@@ -62,6 +72,9 @@
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
+To import comments from database you need to implement C<_table_comment>,
+C<_column_comment>
+
=cut
1;
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/DBI.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Class::C3;
use Carp::Clan qw/^DBIx::Class/;
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/RelBuilder.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/RelBuilder.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader/RelBuilder.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,7 +6,7 @@
use Carp::Clan qw/^DBIx::Class/;
use Lingua::EN::Inflect::Number ();
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
=head1 NAME
Modified: branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/lib/DBIx/Class/Schema/Loader.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -10,7 +10,7 @@
# Always remember to do all digits for the version even if they're 0
# i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
# brain damage and presumably various other packaging systems too
-our $VERSION = '0.04999_10';
+our $VERSION = '0.04999_11';
__PACKAGE__->mk_classaccessor('_loader_args' => {});
__PACKAGE__->mk_classaccessors(qw/dump_to_dir _loader_invoked _loader loader_class/);
@@ -418,6 +418,8 @@
ribasushi: Peter Rabbitson <rabbit+dbic at rabbit.us>
+gugu: Andrey Kostenko <a.kostenko at rambler-co.ru>
+
... and lots of other folks. If we forgot you, please write the current
maintainer or RT.
Modified: branches/DBIx-Class-Schema-Loader/back-compat/t/12pg_common.t
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/t/12pg_common.t 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/t/12pg_common.t 2009-11-29 18:32:00 UTC (rev 7988)
@@ -1,6 +1,7 @@
use strict;
use lib qw(t/lib);
use dbixcsl_common_tests;
+use Test::More;
my $dsn = $ENV{DBICTEST_PG_DSN} || '';
my $user = $ENV{DBICTEST_PG_USER} || '';
@@ -12,6 +13,41 @@
dsn => $dsn,
user => $user,
password => $password,
+ extra => {
+ create => [
+ q{
+ CREATE TABLE pg_loader_test1 (
+ id SERIAL NOT NULL PRIMARY KEY,
+ value VARCHAR(100)
+ )
+ },
+ q{
+ COMMENT ON TABLE pg_loader_test1 IS 'The Table'
+ },
+ q{
+ COMMENT ON COLUMN pg_loader_test1.value IS 'The Column'
+ },
+ ],
+ drop => [ qw/ pg_loader_test1 / ],
+ count => 2,
+ run => sub {
+ my ($schema, $monikers, $classes) = @_;
+
+ my $class = $classes->{pg_loader_test1};
+ my $filename = $schema->_loader->_get_dump_filename($class);
+
+ my $code = do {
+ local ($/, @ARGV) = (undef, $filename);
+ <>;
+ };
+
+ like $code, qr/^=head1 NAME\n\n^$class - The Table\n\n^=cut\n/m,
+ 'table comment';
+
+ like $code, qr/^=head2 value\n\nThe Column\n\n/m,
+ 'column comment';
+ },
+ },
);
if( !$dsn || !$user ) {
Modified: branches/DBIx-Class-Schema-Loader/back-compat/t/20invocations.t
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/t/20invocations.t 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/t/20invocations.t 2009-11-29 18:32:00 UTC (rev 7988)
@@ -3,6 +3,10 @@
use lib qw(t/lib);
use make_dbictest_db;
+local $SIG{__WARN__} = sub {
+ warn $_[0] unless $_[0] =~ /really_erase_my_files/
+};
+
# Takes a $schema as input, runs 4 basic tests
sub test_schema {
my ($testname, $schema) = @_;
Modified: branches/DBIx-Class-Schema-Loader/back-compat/t/22dump.t
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/t/22dump.t 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/t/22dump.t 2009-11-29 18:32:00 UTC (rev 7988)
@@ -6,6 +6,11 @@
my $dump_path = './t/_dump';
+local $SIG{__WARN__} = sub {
+ warn $_[0] unless $_[0] =~
+ /really_erase_my_files|Dumping manual schema|Schema dump completed/;
+};
+
{
package DBICTest::Schema::1;
use base qw/ DBIx::Class::Schema::Loader /;
Modified: branches/DBIx-Class-Schema-Loader/back-compat/t/23dumpmore.t
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/t/23dumpmore.t 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/t/23dumpmore.t 2009-11-29 18:32:00 UTC (rev 7988)
@@ -8,7 +8,7 @@
$^O eq 'MSWin32'
? plan(skip_all => "ActiveState perl produces additional warnings, and this test uses unix paths")
- : plan(tests => 145);
+ : plan(tests => 153);
my $DUMP_PATH = './t/_dump';
@@ -142,11 +142,15 @@
],
Foo => [
qr/package DBICTest::DumpMore::1::Foo;/,
+ qr/=head1 NAME/,
+ qr/=head1 ACCESSORS/,
qr/->set_primary_key/,
qr/1;\n$/,
],
Bar => [
qr/package DBICTest::DumpMore::1::Bar;/,
+ qr/=head1 NAME/,
+ qr/=head1 ACCESSORS/,
qr/->set_primary_key/,
qr/1;\n$/,
],
Modified: branches/DBIx-Class-Schema-Loader/back-compat/t/lib/dbixcsl_common_tests.pm
===================================================================
--- branches/DBIx-Class-Schema-Loader/back-compat/t/lib/dbixcsl_common_tests.pm 2009-11-29 18:17:04 UTC (rev 7987)
+++ branches/DBIx-Class-Schema-Loader/back-compat/t/lib/dbixcsl_common_tests.pm 2009-11-29 18:32:00 UTC (rev 7988)
@@ -73,6 +73,11 @@
$self->drop_tables;
}
+# defined in sub create
+my (@statements, @statements_reltests, @statements_advanced,
+ @statements_advanced_sqlite, @statements_inline_rels,
+ @statements_implicit_rels);
+
sub setup_schema {
my $self = shift;
my @connect_info = @_;
@@ -115,9 +120,20 @@
my $file_count;
find sub { return if -d; $file_count++ }, $DUMP_DIR;
- is $file_count, 34, 'correct number of files generated';
- exit if $file_count != 34;
+ my $expected_count = 34;
+ $expected_count += @{ $self->{extra}{drop} || [] };
+
+ $expected_count -= grep /CREATE TABLE/, @statements_inline_rels
+ if $self->{no_inline_rels};
+
+ $expected_count -= grep /CREATE TABLE/, @statements_implicit_rels
+ if $self->{no_implicit_rels};
+
+ is $file_count, $expected_count, 'correct number of files generated';
+
+ exit if $file_count != $expected_count;
+
my $warn_count = 0;
$warn_count++ if grep /ResultSetManager/, @loader_warnings;
@@ -655,7 +671,17 @@
my $before_digest = $digest->digest;
my $dbh = $self->dbconnect(1);
- $dbh->do($_) for @statements_rescan;
+
+ {
+ # Silence annoying but harmless postgres "NOTICE: CREATE TABLE..."
+ local $SIG{__WARN__} = sub {
+ my $msg = shift;
+ print STDERR $msg unless $msg =~ m{^NOTICE:\s+CREATE TABLE};
+ };
+
+ $dbh->do($_) for @statements_rescan;
+ }
+
$dbh->disconnect;
sleep 1;
@@ -726,7 +752,7 @@
$self->{_created} = 1;
my $make_auto_inc = $self->{auto_inc_cb} || sub {};
- my @statements = (
+ @statements = (
qq{
CREATE TABLE loader_test1s (
id $self->{auto_inc_pk},
@@ -769,7 +795,7 @@
},
);
- my @statements_reltests = (
+ @statements_reltests = (
qq{
CREATE TABLE loader_test3 (
id INTEGER NOT NULL PRIMARY KEY,
@@ -1028,7 +1054,7 @@
q{ INSERT INTO loader_test34 (id,rel1) VALUES (1,2) },
);
- my @statements_advanced = (
+ @statements_advanced = (
qq{
CREATE TABLE loader_test10 (
id10 $self->{auto_inc_pk},
@@ -1053,7 +1079,7 @@
q{ REFERENCES loader_test11 (id11) }),
);
- my @statements_advanced_sqlite = (
+ @statements_advanced_sqlite = (
qq{
CREATE TABLE loader_test10 (
id10 $self->{auto_inc_pk},
@@ -1076,7 +1102,7 @@
q{ loader_test11 INTEGER REFERENCES loader_test11 (id11) }),
);
- my @statements_inline_rels = (
+ @statements_inline_rels = (
qq{
CREATE TABLE loader_test12 (
id INTEGER NOT NULL PRIMARY KEY,
@@ -1100,7 +1126,7 @@
);
- my @statements_implicit_rels = (
+ @statements_implicit_rels = (
qq{
CREATE TABLE loader_test14 (
id INTEGER NOT NULL PRIMARY KEY,
More information about the Bast-commits
mailing list