|
NAMEData::Printer::Filter::DB - pretty-printing database objects (DBI, DBIx::Class, etc)SYNOPSISIn your ".dataprinter" file:filters = DB You may also customize the look and feel with the following options (defaults shown): ### DBH settings: # expand database handle objects filter_db.connection_details = 1 ### DBIx::Class settings: # signal when a result column is dirty: filter_db.show_updated_label = 1 # signal when result rows contain extra columns: filter_db.show_extra_label = 1 # override class.expand for schema dump filter_db.schema.expand = 1 # expand DBH handle on schema dump (may touch DB) filter_db.schema.show_handle = 0 # show source details (connected tables) on schema dump # (may be set to 'names', 'details' or 'none') filter_db.schema.loaded_sources = names # show source table name ResultSource objects filter_db.show_source_table = 1 # show source columns ('names', 'details' or 'none'): filter_db.column_info = details # this plugin honors theme colors where applicable # and provides the following custom colors for you to use: colors.filter_db_connected = #a0d332 colors.filter_db_disconnected = #b3422d That's it! DESCRIPTIONThis is a filter plugin for Data::Printer that displays (hopefully) more relevant information on database objects than a regular dump.Parsed ModulesDBIIf it's a database handle, for example, this filter may show you something like this: SQLite Database Handle (connected) { dbname: file.db Auto Commit: 1 Statement Handles: 2 (1 active) Last Statement: SELECT * FROM some_table } You can show less information by setting this option on your ".dataprinter": filter_db.connection_details = 0 If you have a statement handler like this (for example): my $sth = $dbh->prepare('SELECT * FROM foo WHERE bar = ?'); $sth->execute(42); use DDP; p $sth; This is what you'll get: SELECT * FROM foo WHERE bar = ? (42) Note that if your driver does not support holding of parameter values, you'll get a "bindings unavailable" message instead of the bound values. DBIx::Class This filter is able to pretty-print many common DBIx::Class objects for inspection. Unless otherwrise noted, none of those calls will touch the database. DBIx::Class::Schema objects are dumped by default like this: MyApp::Schema { connection: MySQL Database Handle (connected) replication lag: 4 loaded sources: ResultName1, ResultName2, ResultName3 } If your ".dataprinter" settings have "class.expand" set to 0, it will only show this: MyApp::Schema (MySQL - connected) You may override this with "filter_db.schema.expand = 1" (or 0). Other available options for the schema are (default values shown): # if set to 1, expands 'connection' into a complete DBH dump # NOTE: this may touch the database as it could try to reconnect # to fetch a healthy DBH: filter_db.schema.show_handle = 0 # set to 'details' to view source details, or 'none' to skip it: filter_db.schema.loaded_sources = names DBIx::Class::ResultSource objects will be expanded to show details of what that source represents on the database (as perceived by DBIx::Class), including column information and whether the table is virtual or not. User ResultSource { table: "user" columns: user_id integer not null auto_increment (primary), email varchar(100), bio text non-primary uniques: (email) as 'user_email' } Ever got bit by DBIx::Class? Let us know if we can help by creating an issue on Data::Printer's Github. Patches are welcome! SEE ALSOData::Printer
Visit the GSP FreeBSD Man Page Interface. |