{
my $source = $dbicschema->source($moniker);
my $table_name = $source->name;
- $table_name = $$table_name if ref $table_name eq 'SCALAR'; #sqlt currently does not do quoting right anyway
+
+ if (ref $table_name) {
+ if (ref $table_name eq 'SCALAR') {
+ $table_name = $$table_name;
+ } else {
+ next;
+ }
+ }
# Its possible to have multiple DBIC sources using the same table
next if $tables{$table_name};
) {
$schema->add_table ($tables{$table}{object});
$tables{$table}{source} -> _invoke_sqlt_deploy_hook( $tables{$table}{object} );
- }
+ if ($schema->get_table($table) && $table =~ /\( \s* SELECT \s+/x) {
+ warn <<'EOF';
+Custom SQL through ->name(\'( SELECT ...') is DEPRECATED, see the "Arbitrary
+SQL" entry in:
+
+ perldoc DBIx::Class::Manual::Cookbook
+
+for the current method of doing this.
+
+To exclude this Result class from ->deploy, add the following to it:
+
+ sub sqlt_deploy_hook { $_[1]->schema->drop_table ($_[1]) }
+
+EOF
+ }
+ }
my %views;
foreach my $moniker (sort @view_monikers)