    `first_name` VARCHAR(40) NOT NULL,
    `lock_version` INTEGER NOT NULL DEFAULT 0
  ) TYPE=InnoDB;
+Index: test/fixtures/db_definitions/sybase.sql
+===================================================================
+--- test/fixtures/db_definitions/sybase.sql	(revision 1)
++++ test/fixtures/db_definitions/sybase.sql	(working copy)
+@@ -1,16 +1,16 @@
+ CREATE TABLE accounts (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   firm_id int NULL,
+   credit_limit int NULL
+ )
+ 
+ CREATE TABLE funny_jokes (
+-id numeric(9,0) IDENTITY PRIMARY KEY,
++id int IDENTITY PRIMARY KEY,
+   name varchar(50) NULL
+ )
+ 
+ CREATE TABLE companies (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   type varchar(50) NULL,
+   ruby_type varchar(50) NULL,
+   firm_id int NULL,
+@@ -21,13 +21,13 @@
+ 
+ 
+ CREATE TABLE topics (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   title varchar(255) NULL,
+   author_name varchar(255) NULL,
+   author_email_address varchar(255) NULL,
+   written_on datetime NULL,
+   bonus_time time NULL,
+-  last_read datetime NULL,
++  last_read date NULL,
+   content varchar(255) NULL,
+   approved bit default 1,
+   replies_count int default 0,
+@@ -36,7 +36,7 @@
+ )
+ 
+ CREATE TABLE developers (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(100) NULL,
+   salary int default 70000,
+   created_at datetime NULL,
+@@ -44,7 +44,7 @@
+ )
+ 
+ CREATE TABLE projects (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(100) NULL,
+   type varchar(255) NULL
+ )
+@@ -57,14 +57,14 @@
+ )
+ 
+ CREATE TABLE orders (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(100) NULL,
+   billing_customer_id int NULL,
+   shipping_customer_id int NULL
+ )
+ 
+ CREATE TABLE customers (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(100) NULL,
+   balance int default 0,
+   address_street varchar(100) NULL,
+@@ -74,7 +74,7 @@
+ )
+ 
+ CREATE TABLE movies (
+-  movieid numeric(9,0) IDENTITY PRIMARY KEY,
++  movieid int IDENTITY PRIMARY KEY,
+   name varchar(100) NULL
+ )
+ 
+@@ -84,28 +84,28 @@
+ )
+ 
+ CREATE TABLE booleantests (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   value int NULL
+ )
+ 
+ CREATE TABLE auto_id_tests (
+-  auto_id numeric(9,0) IDENTITY PRIMARY KEY,
++  auto_id int IDENTITY PRIMARY KEY,
+   value int NULL
+ )
+ 
+ CREATE TABLE entrants (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(255) NOT NULL,
+   course_id int NOT NULL
+ )
+ 
+ CREATE TABLE colnametests (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   [references] int NOT NULL
+ )
+ 
+ CREATE TABLE mixins (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   parent_id int NULL,
+   pos int NULL,
+   created_at datetime NULL,
+@@ -117,30 +117,30 @@
+ )
+ 
+ CREATE TABLE people (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   first_name varchar(40) NOT NULL,
+   lock_version int DEFAULT 0
+ )
+ 
+ CREATE TABLE readers (
+-    id numeric(9,0) IDENTITY PRIMARY KEY,
++    id int IDENTITY PRIMARY KEY,
+     post_id int NOT NULL,
+     person_id int NOT NULL
+ )
+ 
+ CREATE TABLE binaries (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   data image NULL
+ )
+ 
+ CREATE TABLE computers (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   developer int NOT NULL,
+   extendedWarranty int NOT NULL
+ )
+ 
+ CREATE TABLE posts (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   author_id int NULL,
+   title varchar(255) NOT NULL,
+   body varchar(2048) NOT NULL,
+@@ -148,25 +148,25 @@
+ )
+ 
+ CREATE TABLE comments (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   post_id int NOT NULL,
+   body varchar(2048) NOT NULL,
+   type varchar(255) NOT NULL
+ )
+ 
+ CREATE TABLE authors (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(255) NOT NULL
+ )
+ 
+ CREATE TABLE tasks (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   starting datetime NULL,
+   ending datetime NULL
+ )
+ 
+ CREATE TABLE categories (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   name varchar(255) NOT NULL,
+   type varchar(255) NOT NULL
+ )
+@@ -177,25 +177,25 @@
+ )
+ 
+ CREATE TABLE fk_test_has_pk (
+-  id numeric(9,0) IDENTITY PRIMARY KEY
++  id int IDENTITY PRIMARY KEY
+ )
+ 
+ CREATE TABLE fk_test_has_fk (
+-  id    numeric(9,0) PRIMARY KEY,
+-  fk_id numeric(9,0) NOT NULL,
++  id    int PRIMARY KEY,
++  fk_id int NOT NULL,
+ 
+   FOREIGN KEY (fk_id) REFERENCES fk_test_has_pk(id)
+ )
+ 
+ 
+ CREATE TABLE keyboards (
+-  key_number numeric(9,0) IDENTITY PRIMARY KEY,
++  key_number int IDENTITY PRIMARY KEY,
+   name varchar(50) NULL
+ )
+ 
+ --This table has an altered lock_version column name.
+ CREATE TABLE legacy_things (
+-  id numeric(9,0) IDENTITY PRIMARY KEY,
++  id int IDENTITY PRIMARY KEY,
+   tps_report_number int default NULL,
+   version int default 0,
+ )
 Index: test/migration_test.rb
 ===================================================================
 --- test/migration_test.rb	(revision 1)

       assert xml.include?(%(<bonus-time type="datetime">#{bonus_time_in_current_timezone}</bonus-time>))
     end
   end
Index: test/fixtures/db_definitions/mysql.sql
===================================================================
--- test/fixtures/db_definitions/mysql.sql	(revision 1)

       assert xml.include?(%(<last-read type="date">2004-04-15</last-read>))
     end
-    # Oracle and DB2 don't have true boolean or time-only fields
+    # Following databases don't have a true boolean type
+    unless current_adapter?(:OracleAdapter) || current_adapter?(:DB2Adapter) ||
+           current_adapter?(:ODBCAdapter) && 
+           [:ingres,:virtuoso,:oracle,:mysql,:db2].include?(ActiveRecord::Base.connection.dbmsName)
+      assert xml.include?(%(<approved type="boolean">false</approved>)), "Approved should be a boolean"
+    end
+    # Oracle and DB2 don't have a true time-only field
