working up an extra simpler test case, i managed to get it working with an
extra simpler $dbh.
for posterity, this is what i hope and ultimately does work, to bootstrap
some source files for hand-editing.
#!perl
use strict; use warnings;
use DBI;
## Set up $dbh
our $dbh;
BEGIN {
$dbh = DBI->connect('DBI:mysql:database=test','test','test');
}
package My::Junk;
use base 'Rose::DB::Object';
sub init_db {
return Rose::DB->new(
dbh => $dbh, driver => 'mysql',
database => 'test' # yields warnings without this redundancy
);
}
__PACKAGE__->meta->table('junk');
__PACKAGE__->meta->auto_initialize;
print __PACKAGE__->meta->perl_class_definition;
> i am getting the following error when trying to auto_initialize a
> table class from a custom $dbh:
>
> Could not auto-retrieve primary key columns for class My::Junk -
> no primary key info found for catalog '' schema '' table 'junk'
>
>
> the table is very simple:
>
> mysql> create table junk ( junk_id int auto_increment primary key,
> name varchar(32) ) ;
> Query OK, 0 rows affected (0.09 sec)
>
> mysql> show create table junk\G
> *************************** 1. row ***************************
> Table: junk
> Create Table: CREATE TABLE `junk` (
> `junk_id` int(11) NOT NULL auto_increment,
> `name` varchar(32) default NULL,
> PRIMARY KEY (`junk_id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8
> 1 row in set (0.00 sec)
>
> mysql> insert into junk set name = 'one' ;
> Query OK, 1 row affected (0.01 sec)
>
> mysql> insert into junk set name = 'two' ;
> Query OK, 1 row affected (0.00 sec)
>
> mysql> select * from junk ;
> +---------+------+
> | junk_id | name |
> +---------+------+
> | 1 | one |
> | 2 | two |
> +---------+------+
> 2 rows in set (0.01 sec)
>
>
>
> here is my test script:
>
> % cat auto.pl
> #!perl
> use strict; use warnings;
>
> ## Set up $dbh
> use Vinq::Globals qw($dbh);
> BEGIN { Vinq::Globals->init(confName => 'plexmreece') }
>
> BEGIN {
> ## verify $dbh is working
> my $sth = $dbh->prepare('SELECT COUNT(1) FROM junk');
> $sth->execute;
>
> print "got ", $sth->fetchrow_array, " junks from dbh $dbh\n";
> }
>
> package My::Junk;
> use base 'Rose::DB::Object';
> use Vinq::Globals qw($dbh);
>
> sub init_db {
> print "Setting up Rose::DB with dbh => $dbh\n";
> return Rose::DB->new(dbh => $dbh, driver => 'mysql');
> }
>
> __PACKAGE__->meta->table('junk');
> __PACKAGE__->meta->auto_initialize;
>
>
> and here is the output:
>
> % perl auto.pl
> got 2 junks from dbh Vinq::DB=HASH(0x8832a74)
> Setting up Rose::DB with dbh => Vinq::DB=HASH(0x8832a74)
> Setting up Rose::DB with dbh => Vinq::DB=HASH(0x8832a74)
> Setting up Rose::DB with dbh => Vinq::DB=HASH(0x8832a74)
> Could not auto-retrieve primary key columns for class My::Junk - no
> primary key info found for catalog '' schema '' table 'junk' at
> auto.pl line 28
>
>
>
> am i missing something? do i need to tell Rose::DB more about the
> dbh i am injecting?
>
> % perl -MRose::DB -MRose::DB::Object -e 'print "Rose::DB
> $Rose::DB::VERSION\nRose::DB::Object $Rose::DB::Object::VERSION\n"'
> Rose::DB 0.732
> Rose::DB::Object 0.760
>
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier.
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Rose-db-object mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rose-db-object
>
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Rose-db-object mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rose-db-object