Finished chapter 6
[depot.git] / log / development.log
index 0057ea8dcf7f7ba5b8bdd9c2991a3dd5296b3e09..95b56a7e5cbaa665a32daa5b828a7690287b908a 100644 (file)
@@ -141,3 +141,443 @@ Rendering template within layouts/products
 Rendering products/index
   \e[4;35;1mProduct Columns (0.003374)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
 Completed in 0.02020 (49 reqs/sec) | Rendering: 0.00515 (25%) | DB: 0.00370 (18%) | 200 OK [http://localhost/products]
+  \e[4;36;1mSQL (0.3ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (17.9ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to CreateProducts (20080724075409)
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (222.8ms)\e[0m   \e[0mALTER TABLE `products` ADD `price` decimal(8,2) DEFAULT 2\e[0m
+  \e[4;36;1mSQL (0.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20090128142730')\e[0m
+  \e[4;35;1mSQL (0.6ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (2.2ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (1.9ms)\e[0m   \e[0mdescribe `products`\e[0m
+  \e[4;36;1mSQL (1.0ms)\e[0m   \e[0;1mSHOW KEYS FROM `products`\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (27.2ms)\e[0m   \e[0mALTER TABLE `products` DROP `price`\e[0m
+  \e[4;36;1mSQL (40.9ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090128142730'\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (26.4ms)\e[0m   \e[0mDROP TABLE `products`\e[0m
+  \e[4;36;1mSQL (38.8ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20080724075409'\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (30.6ms)\e[0m   \e[0mCREATE TABLE `products` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `title` varchar(255), `description` text, `image_url` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB\e[0m
+  \e[4;36;1mSQL (25.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20080724075409')\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (16.2ms)\e[0m   \e[0mALTER TABLE `products` ADD `price` decimal(8,2) DEFAULT 0\e[0m
+  \e[4;36;1mSQL (0.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20090128142730')\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (3.6ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (1.9ms)\e[0m   \e[0mdescribe `products`\e[0m
+  \e[4;36;1mSQL (0.6ms)\e[0m   \e[0;1mSHOW KEYS FROM `products`\e[0m
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 10:55:37) [GET]
+  \e[4;36;1mSQL (41.3ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Load (49.7ms)\e[0m   \e[0mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;36;1mProduct Columns (23.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Completed in 234ms (View: 147, DB: 114) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#edit (for 127.0.0.1 at 2009-01-30 10:55:41) [GET]
+  Parameters: {"id"=>"1"}
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Columns (1.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mProduct Load (23.3ms)\e[0m   \e[0mSELECT * FROM `products` WHERE (`products`.`id` = 1) \e[0m
+Rendering template within layouts/products
+Rendering products/edit
+Completed in 52ms (View: 16, DB: 24) | 200 OK [http://localhost/products/1/edit]
+
+
+Processing ProductsController#update (for 127.0.0.1 at 2009-01-30 10:55:42) [PUT]
+  Parameters: {"commit"=>"Update", "authenticity_token"=>"f081ce86efd30d00f8269cdde39c0b562c696c34", "product"=>{"image_url"=>"", "price"=>"17.00", "title"=>"First product", "description"=>"This is the description of the <i>first</i> product"}, "id"=>"1"}
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Columns (1.2ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mProduct Load (0.3ms)\e[0m   \e[0;1mSELECT * FROM `products` WHERE (`products`.`id` = 1) \e[0m
+  \e[4;35;1mSQL (0.7ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (62.9ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'First product' AND `products`.id <> 1) LIMIT 1\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mROLLBACK\e[0m
+Rendering template within layouts/products
+Rendering products/edit
+Completed in 182ms (View: 22, DB: 65) | 200 OK [http://localhost/products/1]
+
+
+Processing ProductsController#update (for 127.0.0.1 at 2009-01-30 10:56:00) [PUT]
+  Parameters: {"commit"=>"Update", "authenticity_token"=>"f081ce86efd30d00f8269cdde39c0b562c696c34", "product"=>{"image_url"=>"prod1", "price"=>"17.00", "title"=>"First product", "description"=>"This is the description of the <i>first</i> product"}, "id"=>"1"}
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Columns (1.3ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mProduct Load (0.1ms)\e[0m   \e[0;1mSELECT * FROM `products` WHERE (`products`.`id` = 1) \e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.1ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'First product' AND `products`.id <> 1) LIMIT 1\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mROLLBACK\e[0m
+Rendering template within layouts/products
+Rendering products/edit
+Completed in 42ms (View: 16, DB: 2) | 200 OK [http://localhost/products/1]
+
+
+Processing ProductsController#update (for 127.0.0.1 at 2009-01-30 10:56:04) [PUT]
+  Parameters: {"commit"=>"Update", "authenticity_token"=>"f081ce86efd30d00f8269cdde39c0b562c696c34", "product"=>{"image_url"=>"prod1.png", "price"=>"17.00", "title"=>"First product", "description"=>"This is the description of the <i>first</i> product"}, "id"=>"1"}
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Columns (1.1ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mProduct Load (0.2ms)\e[0m   \e[0;1mSELECT * FROM `products` WHERE (`products`.`id` = 1) \e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.1ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'First product' AND `products`.id <> 1) LIMIT 1\e[0m
+  \e[4;35;1mProduct Update (31.3ms)\e[0m   \e[0mUPDATE `products` SET `updated_at` = '2009-01-30 10:56:04', `image_url` = 'prod1.png' WHERE `id` = 1\e[0m
+  \e[4;36;1mSQL (8.9ms)\e[0m   \e[0;1mCOMMIT\e[0m
+Redirected to #<Product:0xb6716f18>
+Completed in 69ms (DB: 42) | 302 Found [http://localhost/products/1]
+
+
+Processing ProductsController#show (for 127.0.0.1 at 2009-01-30 10:56:04) [GET]
+  Parameters: {"id"=>"1"}
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Columns (2.4ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mProduct Load (0.6ms)\e[0m   \e[0mSELECT * FROM `products` WHERE (`products`.`id` = 1) \e[0m
+Rendering template within layouts/products
+Rendering products/show
+Completed in 43ms (View: 17, DB: 3) | 200 OK [http://localhost/products/1]
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 10:56:07) [GET]
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Load (0.4ms)\e[0m   \e[0mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;36;1mProduct Columns (1.7ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Completed in 28ms (View: 14, DB: 2) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#new (for 127.0.0.1 at 2009-01-30 10:56:13) [GET]
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Columns (1.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Rendering template within layouts/products
+Rendering products/new
+Completed in 34ms (View: 21, DB: 1) | 200 OK [http://localhost/products/new]
+
+
+Processing ProductsController#create (for 127.0.0.1 at 2009-01-30 10:56:15) [POST]
+  Parameters: {"commit"=>"Create", "authenticity_token"=>"f081ce86efd30d00f8269cdde39c0b562c696c34", "product"=>{"image_url"=>"", "price"=>"0.0", "title"=>"", "description"=>""}}
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Columns (1.2ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY '') LIMIT 1\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mROLLBACK\e[0m
+Rendering template within layouts/products
+Rendering products/new
+Completed in 49ms (View: 18, DB: 2) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 10:56:26) [GET]
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Load (0.2ms)\e[0m   \e[0mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;36;1mProduct Columns (1.4ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Completed in 32ms (View: 16, DB: 2) | 200 OK [http://localhost/products]
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to CreateProducts (20080724075409)
+Migrating to AddProductPrice (20090128142730)
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (8.2ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mProduct Columns (1.7ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Version Control') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (28.2ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/auto.jpg', '2009-01-30 11:21:28', 'Pragmatic Version Control', 29.95, '<p>\n <em>Pragmatic Project Automation</em> shows you how to improve the \n consistency and repeatability of your project\'s procedures using \n automation to reduce risk and errors.\n </p>\n <p>\n Simply put, we\'re going to put this thing called a computer to work \n for you doing the mundane (but important) project stuff. That means \n you\'ll have more time and energy to do the really \n exciting---and difficult---stuff, like writing quality code.\n </p>', '2009-01-30 11:21:28')\e[0m
+  \e[4;36;1mSQL (0.6ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Version Control') LIMIT 1\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mROLLBACK\e[0m
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mBEGIN\e[0m
+  \e[4;35;1mProduct Exists (0.4ms)\e[0m   \e[0mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Unit Testing (C#)') LIMIT 1\e[0m
+  \e[4;36;1mProduct Create (0.4ms)\e[0m   \e[0;1mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/utc.jpg', '2009-01-30 11:21:28', 'Pragmatic Unit Testing (C#)', 27.75, '<p>\n Pragmatic programmers use feedback to drive their development and \n personal processes. The most valuable feedback you can get while \n coding comes from unit testing.\n </p>\n <p>\n Without good tests in place, coding can become a frustrating game of \n \"whack-a-mole.\" That\'s the carnival game where the player strikes at a \n mechanical mole; it retreats and another mole pops up on the opposite side \n of the field. The moles pop up and down so fast that you end up flailing \n your mallet helplessly as the moles continue to pop up where you least \n expect them.\n </p>', '2009-01-30 11:21:28')\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mCOMMIT\e[0m
+  \e[4;36;1mSQL (23.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20090130111521')\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.3ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.3ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (1.0ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (1.1ms)\e[0m   \e[0mdescribe `products`\e[0m
+  \e[4;36;1mSQL (0.5ms)\e[0m   \e[0;1mSHOW KEYS FROM `products`\e[0m
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:21:36) [GET]
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Load (0.7ms)\e[0m   \e[0;1mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;35;1mProduct Columns (1.1ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+Completed in 34ms (View: 19, DB: 2) | 200 OK [http://localhost/products]
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.3ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (7.2ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mSQL (9.5ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090130111521'\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (174.7ms)\e[0m   \e[0mALTER TABLE `products` DROP `price`\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090128142730'\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (1.4ms)\e[0m   \e[0mDROP TABLE `products`\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20080724075409'\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (6.1ms)\e[0m   \e[0mCREATE TABLE `products` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `title` varchar(255), `description` text, `image_url` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB\e[0m
+  \e[4;36;1mSQL (0.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20080724075409')\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (8.7ms)\e[0m   \e[0mALTER TABLE `products` ADD `price` decimal(8,2) DEFAULT 0\e[0m
+  \e[4;36;1mSQL (0.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20090128142730')\e[0m
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (9.7ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mProduct Columns (2.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.5ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Project Automation') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.4ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/auto.jpg', '2009-01-30 11:22:38', 'Pragmatic Project Automation', 29.95, '<p>\n <em>Pragmatic Project Automation</em> shows you how to improve the \n consistency and repeatability of your project\'s procedures using \n automation to reduce risk and errors.\n </p>\n <p>\n Simply put, we\'re going to put this thing called a computer to work \n for you doing the mundane (but important) project stuff. That means \n you\'ll have more time and energy to do the really \n exciting---and difficult---stuff, like writing quality code.\n </p>', '2009-01-30 11:22:38')\e[0m
+  \e[4;36;1mSQL (0.6ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Version Control') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.4ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/svn.jpg', '2009-01-30 11:22:38', 'Pragmatic Version Control', 28.5, '<p>\n This book is a recipe-based approach to using Subversion that will \n get you up and running quickly---and correctly. All projects need\n version control: it\'s a foundational piece of any project\'s \n infrastructure. Yet half of all project teams in the U.S. don\'t use\n any version control at all. Many others don\'t use it well, and end \n up experiencing time-consuming problems.\n </p>', '2009-01-30 11:22:38')\e[0m
+  \e[4;36;1mSQL (0.6ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Unit Testing (C#)') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.5ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/utc.jpg', '2009-01-30 11:22:38', 'Pragmatic Unit Testing (C#)', 27.75, '<p>\n Pragmatic programmers use feedback to drive their development and \n personal processes. The most valuable feedback you can get while \n coding comes from unit testing.\n </p>\n <p>\n Without good tests in place, coding can become a frustrating game of \n \"whack-a-mole.\" That\'s the carnival game where the player strikes at a \n mechanical mole; it retreats and another mole pops up on the opposite side \n of the field. The moles pop up and down so fast that you end up flailing \n your mallet helplessly as the moles continue to pop up where you least \n expect them.\n </p>', '2009-01-30 11:22:38')\e[0m
+  \e[4;36;1mSQL (6.3ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (13.7ms)\e[0m   \e[0mINSERT INTO schema_migrations (version) VALUES ('20090130111521')\e[0m
+  \e[4;36;1mSQL (0.5ms)\e[0m   \e[0;1mSHOW TABLES\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSELECT version FROM schema_migrations\e[0m
+  \e[4;36;1mSQL (0.5ms)\e[0m   \e[0;1mSHOW TABLES\e[0m
+  \e[4;35;1mSQL (1.8ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mSQL (1.8ms)\e[0m   \e[0;1mdescribe `products`\e[0m
+  \e[4;35;1mSQL (0.7ms)\e[0m   \e[0mSHOW KEYS FROM `products`\e[0m
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:22:43) [GET]
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Load (0.4ms)\e[0m   \e[0mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;36;1mProduct Columns (1.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Completed in 31ms (View: 17, DB: 2) | 200 OK [http://localhost/products]
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.3ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (5.1ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mSQL (12.1ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090130111521'\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (30.2ms)\e[0m   \e[0mALTER TABLE `products` DROP `price`\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090128142730'\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (2.0ms)\e[0m   \e[0mDROP TABLE `products`\e[0m
+  \e[4;36;1mSQL (6.3ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20080724075409'\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (1.2ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (3.4ms)\e[0m   \e[0mCREATE TABLE `products` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `title` varchar(255), `description` text, `image_url` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB\e[0m
+  \e[4;36;1mSQL (0.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20080724075409')\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (6.6ms)\e[0m   \e[0mALTER TABLE `products` ADD `price` decimal(8,2) DEFAULT 0\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20090128142730')\e[0m
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (0.4ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mProduct Columns (1.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.6ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Project Automation') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.6ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/auto.jpg', '2009-01-30 11:26:48', 'Pragmatic Project Automation', 29.95, '<p>\n <em>Pragmatic Project Automation</em> shows you how to improve the \n consistency and repeatability of your project\'s procedures using \n automation to reduce risk and errors.\n </p>\n <p>\n Simply put, we\'re going to put this thing called a computer to work \n for you doing the mundane (but important) project stuff. That means \n you\'ll have more time and energy to do the really \n exciting---and difficult---stuff, like writing quality code.\n </p>', '2009-01-30 11:26:48')\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Version Control') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (1.0ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/svn.jpg', '2009-01-30 11:26:48', 'Pragmatic Version Control', 28.5, '<p>\n This book is a recipe-based approach to using Subversion that will \n get you up and running quickly&emdash;and correctly. All projects need\n version control: it\'s a foundational piece of any project\'s \n infrastructure. Yet half of all project teams in the U.S. don\'t use\n any version control at all. Many others don\'t use it well, and end \n up experiencing time-consuming problems.\n </p>', '2009-01-30 11:26:48')\e[0m
+  \e[4;36;1mSQL (1.8ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Unit Testing (C#)') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.4ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/utc.jpg', '2009-01-30 11:26:48', 'Pragmatic Unit Testing (C#)', 27.75, '<p>\n Pragmatic programmers use feedback to drive their development and \n personal processes. The most valuable feedback you can get while \n coding comes from unit testing.\n </p>\n <p>\n Without good tests in place, coding can become a frustrating game of \n \"whack-a-mole.\" That\'s the carnival game where the player strikes at a \n mechanical mole; it retreats and another mole pops up on the opposite side \n of the field. The moles pop up and down so fast that you end up flailing \n your mallet helplessly as the moles continue to pop up where you least \n expect them.\n </p>', '2009-01-30 11:26:48')\e[0m
+  \e[4;36;1mSQL (2.0ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (8.2ms)\e[0m   \e[0mINSERT INTO schema_migrations (version) VALUES ('20090130111521')\e[0m
+  \e[4;36;1mSQL (0.4ms)\e[0m   \e[0;1mSHOW TABLES\e[0m
+  \e[4;35;1mSQL (0.3ms)\e[0m   \e[0mSELECT version FROM schema_migrations\e[0m
+  \e[4;36;1mSQL (0.3ms)\e[0m   \e[0;1mSHOW TABLES\e[0m
+  \e[4;35;1mSQL (1.0ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mSQL (1.0ms)\e[0m   \e[0;1mdescribe `products`\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW KEYS FROM `products`\e[0m
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:26:52) [GET]
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Load (0.4ms)\e[0m   \e[0;1mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;35;1mProduct Columns (1.1ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+Completed in 37ms (View: 24, DB: 2) | 200 OK [http://localhost/products]
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.5ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (12.5ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mSQL (12.4ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090130111521'\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (22.2ms)\e[0m   \e[0mALTER TABLE `products` DROP `price`\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20090128142730'\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (6.1ms)\e[0m   \e[0mDROP TABLE `products`\e[0m
+  \e[4;36;1mSQL (0.9ms)\e[0m   \e[0;1mDELETE FROM schema_migrations WHERE version = '20080724075409'\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.3ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW TABLES\e[0m
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSELECT version FROM schema_migrations\e[0m
+Migrating to CreateProducts (20080724075409)
+  \e[4;35;1mSQL (4.6ms)\e[0m   \e[0mCREATE TABLE `products` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `title` varchar(255), `description` text, `image_url` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB\e[0m
+  \e[4;36;1mSQL (0.7ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20080724075409')\e[0m
+Migrating to AddProductPrice (20090128142730)
+  \e[4;35;1mSQL (7.3ms)\e[0m   \e[0mALTER TABLE `products` ADD `price` decimal(8,2) DEFAULT 0\e[0m
+  \e[4;36;1mSQL (0.8ms)\e[0m   \e[0;1mINSERT INTO schema_migrations (version) VALUES ('20090128142730')\e[0m
+Migrating to AddTestData (20090130111521)
+  \e[4;35;1mProduct Delete all (1.1ms)\e[0m   \e[0mDELETE FROM `products` \e[0m
+  \e[4;36;1mProduct Columns (2.5ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.5ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Project Automation') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.4ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/auto.jpg', '2009-01-30 11:28:11', 'Pragmatic Project Automation', 29.95, '<p>\n <em>Pragmatic Project Automation</em> shows you how to improve the \n consistency and repeatability of your project\'s procedures using \n automation to reduce risk and errors.\n </p>\n <p>\n Simply put, we\'re going to put this thing called a computer to work \n for you doing the mundane (but important) project stuff. That means \n you\'ll have more time and energy to do the really \n exciting&mdash;and difficult&mdash;stuff, like writing quality code.\n </p>', '2009-01-30 11:28:11')\e[0m
+  \e[4;36;1mSQL (0.5ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.4ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Version Control') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.3ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/svn.jpg', '2009-01-30 11:28:11', 'Pragmatic Version Control', 28.5, '<p>\n This book is a recipe-based approach to using Subversion that will \n get you up and running quickly&mdash;and correctly. All projects need\n version control: it\'s a foundational piece of any project\'s \n infrastructure. Yet half of all project teams in the U.S. don\'t use\n any version control at all. Many others don\'t use it well, and end \n up experiencing time-consuming problems.\n </p>', '2009-01-30 11:28:11')\e[0m
+  \e[4;36;1mSQL (0.5ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mBEGIN\e[0m
+  \e[4;36;1mProduct Exists (0.6ms)\e[0m   \e[0;1mSELECT `products`.id FROM `products` WHERE (`products`.`title` = BINARY 'Pragmatic Unit Testing (C#)') LIMIT 1\e[0m
+  \e[4;35;1mProduct Create (0.3ms)\e[0m   \e[0mINSERT INTO `products` (`image_url`, `updated_at`, `title`, `price`, `description`, `created_at`) VALUES('/images/utc.jpg', '2009-01-30 11:28:11', 'Pragmatic Unit Testing (C#)', 27.75, '<p>\n Pragmatic programmers use feedback to drive their development and \n personal processes. The most valuable feedback you can get while \n coding comes from unit testing.\n </p>\n <p>\n Without good tests in place, coding can become a frustrating game of \n \"whack-a-mole.\" That\'s the carnival game where the player strikes at a \n mechanical mole; it retreats and another mole pops up on the opposite side \n of the field. The moles pop up and down so fast that you end up flailing \n your mallet helplessly as the moles continue to pop up where you least \n expect them.\n </p>', '2009-01-30 11:28:11')\e[0m
+  \e[4;36;1mSQL (1.3ms)\e[0m   \e[0;1mCOMMIT\e[0m
+  \e[4;35;1mSQL (0.7ms)\e[0m   \e[0mINSERT INTO schema_migrations (version) VALUES ('20090130111521')\e[0m
+  \e[4;36;1mSQL (0.9ms)\e[0m   \e[0;1mSHOW TABLES\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSELECT version FROM schema_migrations\e[0m
+  \e[4;36;1mSQL (0.3ms)\e[0m   \e[0;1mSHOW TABLES\e[0m
+  \e[4;35;1mSQL (1.0ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mSQL (1.3ms)\e[0m   \e[0;1mdescribe `products`\e[0m
+  \e[4;35;1mSQL (0.4ms)\e[0m   \e[0mSHOW KEYS FROM `products`\e[0m
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:28:19) [GET]
+  \e[4;36;1mSQL (0.3ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Load (1.3ms)\e[0m   \e[0mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;36;1mProduct Columns (1.2ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Completed in 30ms (View: 15, DB: 3) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:53:52) [GET]
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Load (0.3ms)\e[0m   \e[0;1mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;35;1mProduct Columns (1.3ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+Completed in 41ms (View: 24, DB: 2) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#show (for 127.0.0.1 at 2009-01-30 11:53:55) [GET]
+  Parameters: {"id"=>"1"}
+  \e[4;36;1mSQL (0.2ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Columns (2.1ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mProduct Load (0.7ms)\e[0m   \e[0;1mSELECT * FROM `products` WHERE (`products`.`id` = 1) \e[0m
+Rendering template within layouts/products
+Rendering products/show
+Completed in 41ms (View: 20, DB: 3) | 200 OK [http://localhost/products/1]
+
+
+Processing ProductsController#show (for 127.0.0.1 at 2009-01-30 11:54:35) [GET]
+  Parameters: {"id"=>"3"}
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Columns (1.3ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mProduct Load (0.4ms)\e[0m   \e[0mSELECT * FROM `products` WHERE (`products`.`id` = 3) \e[0m
+Rendering template within layouts/products
+Rendering products/show
+Completed in 29ms (View: 14, DB: 2) | 200 OK [http://localhost/products/3]
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:54:44) [GET]
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Load (0.3ms)\e[0m   \e[0mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;36;1mProduct Columns (1.2ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+Completed in 39ms (View: 24, DB: 2) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#show (for 127.0.0.1 at 2009-01-30 11:55:35) [GET]
+  Parameters: {"id"=>"3"}
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Columns (1.1ms)\e[0m   \e[0;1mSHOW FIELDS FROM `products`\e[0m
+  \e[4;35;1mProduct Load (0.1ms)\e[0m   \e[0mSELECT * FROM `products` WHERE (`products`.`id` = 3) \e[0m
+Rendering template within layouts/products
+Rendering products/show
+Completed in 27ms (View: 13, DB: 1) | 200 OK [http://localhost/products/3]
+
+
+Processing ProductsController#edit (for 127.0.0.1 at 2009-01-30 11:55:43) [GET]
+  Parameters: {"id"=>"2"}
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Columns (1.9ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mProduct Load (0.5ms)\e[0m   \e[0;1mSELECT * FROM `products` WHERE (`products`.`id` = 2) \e[0m
+Rendering template within layouts/products
+Rendering products/edit
+Completed in 33ms (View: 18, DB: 2) | 200 OK [http://localhost/products/2/edit]
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:56:05) [GET]
+  \e[4;35;1mSQL (0.2ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Load (0.2ms)\e[0m   \e[0;1mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;35;1mProduct Columns (1.1ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+Completed in 35ms (View: 20, DB: 1) | 200 OK [http://localhost/products]
+
+
+Processing ProductsController#show (for 127.0.0.1 at 2009-01-30 11:56:08) [GET]
+  Parameters: {"id"=>"2"}
+  \e[4;36;1mSQL (0.1ms)\e[0m   \e[0;1mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;35;1mProduct Columns (1.1ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+  \e[4;36;1mProduct Load (0.2ms)\e[0m   \e[0;1mSELECT * FROM `products` WHERE (`products`.`id` = 2) \e[0m
+Rendering template within layouts/products
+Rendering products/show
+Completed in 26ms (View: 12, DB: 1) | 200 OK [http://localhost/products/2]
+
+
+Processing ProductsController#index (for 127.0.0.1 at 2009-01-30 11:56:25) [GET]
+  \e[4;35;1mSQL (0.1ms)\e[0m   \e[0mSET SQL_AUTO_IS_NULL=0\e[0m
+  \e[4;36;1mProduct Load (0.2ms)\e[0m   \e[0;1mSELECT * FROM `products` \e[0m
+Rendering template within layouts/products
+Rendering products/index
+  \e[4;35;1mProduct Columns (1.9ms)\e[0m   \e[0mSHOW FIELDS FROM `products`\e[0m
+Completed in 35ms (View: 21, DB: 2) | 200 OK [http://localhost/products]