On Sun, 2006-06-25 at 20:39 +0100, Matt S Trout wrote: > Sebastian Willert wrote: > > Hi all, > > > > after some late-night discussion with castaway about > > DBIC::Schema->deploy() we noticed that > > SQL::Translator::Parser::DBIx::Class tries to query the connected > > database. This shouldn't be done IMO because this might change the info > > provided in the schema and might not be stable between different > > underlying RDBMs. > > > > This are the reasons why I've produced the patch below, the changes > > should be self-explainatory. The patch has been tested on the > > command-line, using the programmatic interface of SQLT and using > > DBIC::Schema->deploy() but could need some additional testing with more > > complex schema then I have readily available. > > The changes are clearly harmful. A schema class simply acts as a prototype > for > objects of that class, it is not guaranteed to contain all the requisite > data.
That depends on the intention of SQLT::Parser::DBIC, i think. If the intention is to dump a running schema instance, then you are perfectly correct. But if the intention is to build databases according to the hard-coded info (i.e. the prototype) in the schema then relying on run-time info gathered from a database is harmful IMO. I was basically interested in automatic test database creation for RDBMs agnostic apps and in this setting it is sensible to not rely on any info gathered from a specific DB, so I naively assumed the second intention. If I was wrong, I'll happily retract my patch, though. Cheers, Sebastian _______________________________________________ List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class Wiki: http://dbix-class.shadowcatsystems.co.uk/ IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/ Searchable Archive: http://www.mail-archive.com/[email protected]/
