rsim / oracle-enhanced

Oracle enhaced adapter for ActiveRecord
MIT License
547 stars 309 forks source link

rails4: Dump schema using new style hash support #217

Closed yahonda closed 12 years ago

yahonda commented 12 years ago

Since rails/rails#7566, these schema dumper test got failures.

$ ARCONN=oracle ruby -Itest test/cases/schema_dumper_test.rb 
Using oracle
Run options: --seed 3956

# Running tests:

........FFFFFFF...FF.

Finished tests in 46.398151s, 0.4526 tests/s, 12.6514 assertions/s.

  1) Failure:
test_schema_dump_includes_decimal_options(SchemaDumperTest) [test/cases/schema_dumper_test.rb:228]:
Expected /precision: 3,[[:space:]]+scale: 2,[[:space:]]+default: 2.78/ to match "# encoding: UTF-8\n# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your\n# database schema. If you need to create the application database on another\n# system, you should be using db:schema:load, not running all the migrations\n# from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema.define(version: 0) do\n\n  create_table \"non_poly_ones\", :force => true do |t|\n  end\n\n  create_table \"non_poly_twos\", :force => true do |t|\n  end\n\n  create_table \"numeric_data\", :force => true do |t|\n    t.decimal \"bank_balance\",                              :precision => 10, :scale => 2\n    t.decimal \"big_bank_balance\",                          :precision => 15, :scale => 2\n    t.integer \"world_population\",            :limit => 10, :precision => 10, :scale => 0\n    t.integer \"my_house_population\",         :limit => 2,  :precision => 2,  :scale => 0\n    t.decimal \"decimal_number_with_default\",               :precision => 3,  :scale => 2, :default => 2.78\n    t.decimal \"temperature\"\n    t.integer \"atoms_in_universe\",                         :precision => 38, :scale => 0\n  end\n\n\nend\n".

  2) Failure:
test_schema_dump_includes_limit_constraint_for_integer_columns(SchemaDumperTest) [test/cases/schema_dumper_test.rb:141]:
Expected /c_int_5.*limit: 5/ to match "# encoding: UTF-8\n# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your\n# database schema. If you need to create the application database on another\n# system, you should be using db:schema:load, not running all the migrations\n# from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema.define(version: 0) do\n\n  create_table \"integer_limits\", :force => true do |t|\n    t.integer \"c_int_without_limit\",              :precision => 38, :scale => 0\n    t.boolean \"c_int_1\",                          :precision => 1,  :scale => 0\n    t.integer \"c_int_2\",             :limit => 2, :precision => 2,  :scale => 0\n    t.integer \"c_int_3\",             :limit => 3, :precision => 3,  :scale => 0\n    t.integer \"c_int_4\",             :limit => 4, :precision => 4,  :scale => 0\n    t.integer \"c_int_5\",             :limit => 5, :precision => 5,  :scale => 0\n    t.integer \"c_int_6\",             :limit => 6, :precision => 6,  :scale => 0\n    t.integer \"c_int_7\",             :limit => 7, :precision => 7,  :scale => 0\n    t.integer \"c_int_8\",             :limit => 8, :precision => 8,  :scale => 0\n  end\n\n\nend\n".

  3) Failure:
test_schema_dump_includes_not_null_columns(SchemaDumperTest) [test/cases/schema_dumper_test.rb:99]:
Expected /null: false/ to match "# encoding: UTF-8\n# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your\n# database schema. If you need to create the application database on another\n# system, you should be using db:schema:load, not running all the migrations\n# from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema.define(version: 0) do\n\n  create_table \"randomly_named_table\", :force => true do |t|\n    t.string  \"some_attribute\"\n    t.integer \"another_attribute\", :precision => 38, :scale => 0\n  end\n\n  create_table \"ratings\", :force => true do |t|\n    t.integer \"comment_id\", :precision => 38, :scale => 0\n    t.integer \"value\",      :precision => 38, :scale => 0\n  end\n\n  create_table \"readers\", :force => true do |t|\n    t.integer \"post_id\",   :precision => 38, :scale => 0,                    :null => false\n    t.integer \"person_id\", :precision => 38, :scale => 0,                    :null => false\n    t.boolean \"skimmer\",   :precision => 1,  :scale => 0, :default => false\n  end\n\n  create_table \"references\", :force => true do |t|\n    t.integer \"person_id\",    :precision => 38, :scale => 0\n    t.integer \"job_id\",       :precision => 38, :scale => 0\n    t.boolean \"favourite\",    :precision => 1,  :scale => 0\n    t.integer \"lock_version\", :precision => 38, :scale => 0, :default => 0\n  end\n\n\nend\n".

  4) Failure:
test_schema_dump_keeps_id_column_when_id_is_false_and_id_column_added(SchemaDumperTest) [test/cases/schema_dumper_test.rb:303]:
no table id not preserved.
Expected /id: false/ to match ", :id => false, :force => true ".

  5) Failure:
test_schema_dump_keeps_id_false_when_id_is_false_and_unique_not_null_column_added(SchemaDumperTest) [test/cases/schema_dumper_test.rb:309]:
Expected /create_table "subscribers", id: false/ to match "# encoding: UTF-8\n# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your\n# database schema. If you need to create the application database on another\n# system, you should be using db:schema:load, not running all the migrations\n# from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema.define(version: 0) do\n\n  create_table \"CamelCase\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"accounts\", :force => true do |t|\n    t.integer \"firm_id\",      :precision => 38, :scale => 0\n    t.string  \"firm_name\"\n    t.integer \"credit_limit\", :precision => 38, :scale => 0\n  end\n\n  create_table \"admin_accounts\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"admin_users\", :force => true do |t|\n    t.string  \"name\"\n    t.string  \"settings\",        :limit => 1024\n    t.string  \"preferences\",     :limit => 1024,                                :default => \"\"\n    t.string  \"json_data\",       :limit => 1024\n    t.string  \"json_data_empty\", :limit => 1024,                                :default => \"\"\n    t.integer \"account_id\",                      :precision => 38, :scale => 0\n  end\n\n  create_table \"aircraft\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"audit_logs\", :force => true do |t|\n    t.string  \"message\",                                                 :null => false\n    t.integer \"developer_id\",             :precision => 38, :scale => 0, :null => false\n    t.integer \"unvalidated_developer_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"author_addresses\", :force => true do |t|\n  end\n\n  create_table \"author_favorites\", :force => true do |t|\n    t.integer \"author_id\",          :precision => 38, :scale => 0\n    t.integer \"favorite_author_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"authors\", :force => true do |t|\n    t.string  \"name\",                                                   :null => false\n    t.integer \"author_address_id\",       :precision => 38, :scale => 0\n    t.integer \"author_address_extra_id\", :precision => 38, :scale => 0\n    t.string  \"organization_id\"\n    t.string  \"owned_essay_id\"\n  end\n\n  create_table \"auto_id_tests\", :primary_key => \"auto_id\", :force => true do |t|\n    t.integer \"value\", :precision => 38, :scale => 0\n  end\n\n  create_table \"binaries\", :force => true do |t|\n    t.string \"name\"\n    t.binary \"data\"\n    t.binary \"short_data\"\n  end\n\n  create_table \"birds\", :force => true do |t|\n    t.string  \"name\"\n    t.string  \"color\"\n    t.integer \"pirate_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"books\", :force => true do |t|\n    t.integer \"author_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"booleans\", :force => true do |t|\n    t.boolean \"value\",   :precision => 1, :scale => 0\n    t.boolean \"has_fun\", :precision => 1, :scale => 0, :default => false, :null => false\n  end\n\n  create_table \"bulbs\", :force => true do |t|\n    t.integer \"car_id\",         :precision => 38, :scale => 0\n    t.string  \"name\"\n    t.boolean \"frickinawesome\", :precision => 1,  :scale => 0\n    t.string  \"color\"\n  end\n\n  create_table \"cars\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"engines_count\", :precision => 38, :scale => 0\n    t.integer \"wheels_count\",  :precision => 38, :scale => 0\n    t.integer \"lock_version\",  :precision => 38, :scale => 0, :default => 0, :null => false\n  end\n\n  create_table \"categories\", :force => true do |t|\n    t.string  \"name\",                                                 :null => false\n    t.string  \"type\"\n    t.integer \"categorizations_count\", :precision => 38, :scale => 0\n  end\n\n  create_table \"categories_posts\", :id => false, :force => true do |t|\n    t.integer \"category_id\", :precision => 38, :scale => 0, :null => false\n    t.integer \"post_id\",     :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"categorizations\", :force => true do |t|\n    t.integer \"category_id\",         :precision => 38, :scale => 0\n    t.string  \"named_category_name\"\n    t.integer \"post_id\",             :precision => 38, :scale => 0\n    t.integer \"author_id\",           :precision => 38, :scale => 0\n    t.boolean \"special\",             :precision => 1,  :scale => 0\n  end\n\n  create_table \"circles\", :force => true do |t|\n  end\n\n  create_table \"citations\", :force => true do |t|\n    t.integer \"book1_id\", :precision => 38, :scale => 0\n    t.integer \"book2_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"clubs\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"category_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"cold_jokes\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"collections\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"colnametests\", :force => true do |t|\n    t.integer \"references\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"comments\", :force => true do |t|\n    t.integer \"post_id\",                        :precision => 38, :scale => 0,                :null => false\n    t.string  \"body\",           :limit => 4000,                                               :null => false\n    t.string  \"type\"\n    t.integer \"taggings_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"children_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"parent_id\",                      :precision => 38, :scale => 0\n  end\n\n  create_table \"companies\", :force => true do |t|\n    t.string  \"type\"\n    t.integer \"firm_id\",     :precision => 38, :scale => 0\n    t.string  \"firm_name\"\n    t.string  \"name\"\n    t.integer \"client_of\",   :precision => 38, :scale => 0\n    t.integer \"rating\",      :precision => 38, :scale => 0, :default => 1\n    t.integer \"account_id\",  :precision => 38, :scale => 0\n    t.string  \"description\",                                :default => \"\"\n  end\n\n  add_index \"companies\", [\"firm_id\", \"type\", \"rating\"], :name => \"company_index\"\n  add_index \"companies\", [\"firm_id\", \"type\"], :name => \"company_partial_index\"\n\n  create_table \"computers\", :force => true do |t|\n    t.integer \"developer\",        :precision => 38, :scale => 0, :null => false\n    t.integer \"extendedWarranty\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"contracts\", :force => true do |t|\n    t.integer \"developer_id\", :precision => 38, :scale => 0\n    t.integer \"company_id\",   :precision => 38, :scale => 0\n  end\n\n  create_table \"countries\", :id => false, :force => true do |t|\n    t.string \"country_id\"\n    t.string \"name\"\n  end\n\n  create_table \"countries_treaties\", :id => false, :force => true do |t|\n    t.string \"country_id\", :null => false\n    t.string \"treaty_id\",  :null => false\n  end\n\n  create_table \"customers\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"balance\",         :precision => 38, :scale => 0, :default => 0\n    t.string  \"address_street\"\n    t.string  \"address_city\"\n    t.string  \"address_country\"\n    t.string  \"gps_location\"\n  end\n\n  create_table \"dashboards\", :id => false, :force => true do |t|\n    t.string \"dashboard_id\"\n    t.string \"name\"\n  end\n\n  create_table \"defaults\", :id => false, :force => true do |t|\n    t.integer  \"id\",                                   :precision => 38, :scale => 0,                                    :null => false\n    t.datetime \"modified_date\"\n    t.datetime \"modified_date_function\"\n    t.datetime \"fixed_date\",                                                          :default => '2004-01-01 00:00:00'\n    t.datetime \"modified_time\"\n    t.datetime \"modified_time_function\"\n    t.datetime \"fixed_time\",                                                          :default => '2004-01-01 00:00:00'\n    t.string   \"char1\",                  :limit => 1,                                 :default => \"Y\"\n    t.string   \"char2\",                  :limit => 50,                                :default => \"a varchar field\"\n    t.text     \"char3\",                                                               :default => \"a text field\"\n    t.integer  \"positive_integer\",                     :precision => 38, :scale => 0, :default => 1\n    t.integer  \"negative_integer\",                     :precision => 38, :scale => 0, :default => -1\n    t.decimal  \"decimal_number\",                       :precision => 3,  :scale => 2, :default => 2.78\n  end\n\n  create_table \"developers\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"salary\",     :precision => 38, :scale => 0, :default => 70000\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"developers_projects\", :id => false, :force => true do |t|\n    t.integer  \"developer_id\", :precision => 38, :scale => 0,                :null => false\n    t.integer  \"project_id\",   :precision => 38, :scale => 0,                :null => false\n    t.datetime \"joined_on\"\n    t.integer  \"access_level\", :precision => 38, :scale => 0, :default => 1\n  end\n\n  create_table \"dog_lovers\", :force => true do |t|\n    t.integer \"trained_dogs_count\", :precision => 38, :scale => 0, :default => 0\n    t.integer \"bred_dogs_count\",    :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"dogs\", :force => true do |t|\n    t.integer \"trainer_id\", :precision => 38, :scale => 0\n    t.integer \"breeder_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"edges\", :id => false, :force => true do |t|\n    t.integer \"source_id\", :precision => 38, :scale => 0, :null => false\n    t.integer \"sink_id\",   :precision => 38, :scale => 0, :null => false\n  end\n\n  add_index \"edges\", [\"source_id\", \"sink_id\"], :name => \"unique_edge_index\", :unique => true\n\n  create_table \"electrons\", :force => true do |t|\n    t.integer \"molecule_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"engines\", :force => true do |t|\n    t.integer \"car_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"entrants\", :force => true do |t|\n    t.string  \"name\",                                     :null => false\n    t.integer \"course_id\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"essays\", :force => true do |t|\n    t.string \"name\"\n    t.string \"writer_id\"\n    t.string \"writer_type\"\n    t.string \"category_id\"\n    t.string \"author_id\"\n  end\n\n  create_table \"events\", :force => true do |t|\n    t.string \"title\", :limit => 5\n  end\n\n  create_table \"eyes\", :force => true do |t|\n  end\n\n  create_table \"faces\", :force => true do |t|\n    t.string  \"description\"\n    t.integer \"man_id\",                        :precision => 38, :scale => 0\n    t.integer \"polymorphic_man_id\",            :precision => 38, :scale => 0\n    t.string  \"polymorphic_man_type\"\n    t.integer \"horrible_polymorphic_man_id\",   :precision => 38, :scale => 0\n    t.string  \"horrible_polymorphic_man_type\"\n  end\n\n  create_table \"fk_test_has_fk\", :force => true do |t|\n    t.integer \"fk_id\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"fk_test_has_pk\", :force => true do |t|\n  end\n\n  create_table \"friendships\", :force => true do |t|\n    t.integer \"friend_id\", :precision => 38, :scale => 0\n    t.integer \"person_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"funny_jokes\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"goofy_string_id\", :id => false, :force => true do |t|\n    t.string \"id\",   :null => false\n    t.string \"info\"\n  end\n\n  create_table \"guids\", :force => true do |t|\n    t.string \"key\"\n  end\n\n  create_table \"having\", :force => true do |t|\n    t.string \"where\"\n  end\n\n  create_table \"inept_wizards\", :force => true do |t|\n    t.string \"name\", :null => false\n    t.string \"city\", :null => false\n    t.string \"type\"\n  end\n\n  create_table \"integer_limits\", :force => true do |t|\n    t.integer \"c_int_without_limit\",              :precision => 38, :scale => 0\n    t.boolean \"c_int_1\",                          :precision => 1,  :scale => 0\n    t.integer \"c_int_2\",             :limit => 2, :precision => 2,  :scale => 0\n    t.integer \"c_int_3\",             :limit => 3, :precision => 3,  :scale => 0\n    t.integer \"c_int_4\",             :limit => 4, :precision => 4,  :scale => 0\n    t.integer \"c_int_5\",             :limit => 5, :precision => 5,  :scale => 0\n    t.integer \"c_int_6\",             :limit => 6, :precision => 6,  :scale => 0\n    t.integer \"c_int_7\",             :limit => 7, :precision => 7,  :scale => 0\n    t.integer \"c_int_8\",             :limit => 8, :precision => 8,  :scale => 0\n  end\n\n  create_table \"interests\", :force => true do |t|\n    t.string  \"topic\"\n    t.integer \"man_id\",               :precision => 38, :scale => 0\n    t.integer \"polymorphic_man_id\",   :precision => 38, :scale => 0\n    t.string  \"polymorphic_man_type\"\n    t.integer \"zine_id\",              :precision => 38, :scale => 0\n  end\n\n  create_table \"invoices\", :force => true do |t|\n    t.integer  \"balance\",    :precision => 38, :scale => 0\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"iris\", :force => true do |t|\n    t.integer \"eye_id\", :precision => 38, :scale => 0\n    t.string  \"color\"\n  end\n\n  create_table \"items\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"jobs\", :force => true do |t|\n    t.integer \"ideal_reference_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"keyboards\", :primary_key => \"key_number\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"legacy_things\", :force => true do |t|\n    t.integer \"tps_report_number\", :precision => 38, :scale => 0\n    t.integer \"version\",           :precision => 38, :scale => 0, :default => 0, :null => false\n  end\n\n  create_table \"lessons\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"lessons_students\", :id => false, :force => true do |t|\n    t.integer \"lesson_id\",  :precision => 38, :scale => 0\n    t.integer \"student_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"line_items\", :force => true do |t|\n    t.integer \"invoice_id\", :precision => 38, :scale => 0\n    t.integer \"amount\",     :precision => 38, :scale => 0\n  end\n\n  create_table \"lint_models\", :force => true do |t|\n  end\n\n  create_table \"liquid\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"lock_without_defaults\", :force => true do |t|\n    t.integer \"lock_version\", :precision => 38, :scale => 0\n  end\n\n  create_table \"lock_without_defaults_cust\", :force => true do |t|\n    t.integer \"custom_lock_version\", :precision => 38, :scale => 0\n  end\n\n  create_table \"mateys\", :id => false, :force => true do |t|\n    t.integer \"pirate_id\", :precision => 38, :scale => 0\n    t.integer \"target_id\", :precision => 38, :scale => 0\n    t.integer \"weight\",    :precision => 38, :scale => 0\n  end\n\n  create_table \"member_details\", :force => true do |t|\n    t.integer \"member_id\",       :precision => 38, :scale => 0\n    t.integer \"organization_id\", :precision => 38, :scale => 0\n    t.string  \"extra_data\"\n  end\n\n  create_table \"member_friends\", :id => false, :force => true do |t|\n    t.integer \"member_id\", :precision => 38, :scale => 0\n    t.integer \"friend_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"member_types\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"members\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"member_type_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"memberships\", :force => true do |t|\n    t.datetime \"joined_on\"\n    t.integer  \"club_id\",   :precision => 38, :scale => 0\n    t.integer  \"member_id\", :precision => 38, :scale => 0\n    t.boolean  \"favourite\", :precision => 1,  :scale => 0, :default => false\n    t.string   \"type\"\n  end\n\n  create_table \"men\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"minimalistics\", :force => true do |t|\n  end\n\n  create_table \"minivans\", :id => false, :force => true do |t|\n    t.string \"minivan_id\"\n    t.string \"name\"\n    t.string \"speedometer_id\"\n    t.string \"color\"\n  end\n\n  create_table \"mixed_case_monkeys\", :primary_key => \"monkeyID\", :force => true do |t|\n    t.integer \"fleaCount\", :precision => 38, :scale => 0\n  end\n\n  create_table \"mixins\", :force => true do |t|\n    t.integer  \"parent_id\",  :precision => 38, :scale => 0\n    t.integer  \"pos\",        :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n    t.integer  \"lft\",        :precision => 38, :scale => 0\n    t.integer  \"rgt\",        :precision => 38, :scale => 0\n    t.integer  \"root_id\",    :precision => 38, :scale => 0\n    t.string   \"type\"\n  end\n\n  create_table \"molecules\", :force => true do |t|\n    t.integer \"liquid_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"movies\", :primary_key => \"movieid\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"non_poly_ones\", :force => true do |t|\n  end\n\n  create_table \"non_poly_twos\", :force => true do |t|\n  end\n\n  create_table \"numeric_data\", :force => true do |t|\n    t.decimal \"bank_balance\",                              :precision => 10, :scale => 2\n    t.decimal \"big_bank_balance\",                          :precision => 15, :scale => 2\n    t.integer \"world_population\",            :limit => 10, :precision => 10, :scale => 0\n    t.integer \"my_house_population\",         :limit => 2,  :precision => 2,  :scale => 0\n    t.decimal \"decimal_number_with_default\",               :precision => 3,  :scale => 2, :default => 2.78\n    t.decimal \"temperature\"\n    t.integer \"atoms_in_universe\",                         :precision => 38, :scale => 0\n  end\n\n  create_table \"orders\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"billing_customer_id\",  :precision => 38, :scale => 0\n    t.integer \"shipping_customer_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"organizations\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"owners\", :primary_key => \"owner_id\", :force => true do |t|\n    t.string   \"name\"\n    t.datetime \"updated_at\"\n    t.datetime \"happy_at\"\n    t.string   \"essay_id\"\n  end\n\n  create_table \"p_schema_migrations_s\", :id => false, :force => true do |t|\n    t.string \"version\", :null => false\n  end\n\n  add_index \"p_schema_migrations_s\", [\"version\"], :name => \"p_unique_schema_migrations_s\", :unique => true\n\n  create_table \"paint_colors\", :force => true do |t|\n    t.integer \"non_poly_one_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"paint_textures\", :force => true do |t|\n    t.integer \"non_poly_two_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"parrots\", :force => true do |t|\n    t.string   \"name\"\n    t.string   \"color\"\n    t.string   \"parrot_sti_class\"\n    t.integer  \"killer_id\",        :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"created_on\"\n    t.datetime \"updated_at\"\n    t.datetime \"updated_on\"\n  end\n\n  create_table \"parrots_pirates\", :id => false, :force => true do |t|\n    t.integer \"parrot_id\", :precision => 38, :scale => 0\n    t.integer \"pirate_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"parrots_treasures\", :id => false, :force => true do |t|\n    t.integer \"parrot_id\",   :precision => 38, :scale => 0\n    t.integer \"treasure_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"people\", :force => true do |t|\n    t.string   \"first_name\",                                                                    :null => false\n    t.integer  \"primary_contact_id\",              :precision => 38, :scale => 0\n    t.string   \"gender\",             :limit => 1\n    t.integer  \"number1_fan_id\",                  :precision => 38, :scale => 0\n    t.integer  \"lock_version\",                    :precision => 38, :scale => 0, :default => 0, :null => false\n    t.string   \"comments\"\n    t.integer  \"followers_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer  \"best_friend_id\",                  :precision => 38, :scale => 0\n    t.integer  \"best_friend_of_id\",               :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"peoples_treasures\", :id => false, :force => true do |t|\n    t.integer \"rich_person_id\", :precision => 38, :scale => 0\n    t.integer \"treasure_id\",    :precision => 38, :scale => 0\n  end\n\n  create_table \"pets\", :primary_key => \"pet_id\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"owner_id\",   :precision => 38, :scale => 0\n    t.integer  \"integer\",    :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"pirates\", :force => true do |t|\n    t.string   \"catchphrase\"\n    t.integer  \"parrot_id\",               :precision => 38, :scale => 0\n    t.integer  \"non_validated_parrot_id\", :precision => 38, :scale => 0\n    t.datetime \"created_on\"\n    t.datetime \"updated_on\"\n  end\n\n  create_table \"posts\", :force => true do |t|\n    t.integer \"author_id\",                                      :precision => 38, :scale => 0\n    t.string  \"title\",                                                                                        :null => false\n    t.string  \"body\",                           :limit => 4000,                                               :null => false\n    t.string  \"type\"\n    t.integer \"comments_count\",                                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"taggings_count\",                                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"taggings_with_delete_all_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"taggings_with_destroy_count\",                    :precision => 38, :scale => 0, :default => 0\n    t.integer \"tags_count\",                                     :precision => 38, :scale => 0, :default => 0\n    t.integer \"tags_with_destroy_count\",                        :precision => 38, :scale => 0, :default => 0\n    t.integer \"tags_with_nullify_count\",                        :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"price_estimates\", :force => true do |t|\n    t.string  \"estimate_of_type\"\n    t.integer \"estimate_of_id\",   :precision => 38, :scale => 0\n    t.integer \"price\",            :precision => 38, :scale => 0\n  end\n\n  create_table \"products\", :force => true do |t|\n    t.integer \"collection_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"projects\", :force => true do |t|\n    t.string \"name\"\n    t.string \"type\"\n  end\n\n  create_table \"randomly_named_table\", :force => true do |t|\n    t.string  \"some_attribute\"\n    t.integer \"another_attribute\", :precision => 38, :scale => 0\n  end\n\n  create_table \"ratings\", :force => true do |t|\n    t.integer \"comment_id\", :precision => 38, :scale => 0\n    t.integer \"value\",      :precision => 38, :scale => 0\n  end\n\n  create_table \"readers\", :force => true do |t|\n    t.integer \"post_id\",   :precision => 38, :scale => 0,                    :null => false\n    t.integer \"person_id\", :precision => 38, :scale => 0,                    :null => false\n    t.boolean \"skimmer\",   :precision => 1,  :scale => 0, :default => false\n  end\n\n  create_table \"references\", :force => true do |t|\n    t.integer \"person_id\",    :precision => 38, :scale => 0\n    t.integer \"job_id\",       :precision => 38, :scale => 0\n    t.boolean \"favourite\",    :precision => 1,  :scale => 0\n    t.integer \"lock_version\", :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"shape_expressions\", :force => true do |t|\n    t.string  \"paint_type\"\n    t.integer \"paint_id\",   :precision => 38, :scale => 0\n    t.string  \"shape_type\"\n    t.integer \"shape_id\",   :precision => 38, :scale => 0\n  end\n\n  create_table \"ship_parts\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"ship_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"ships\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"pirate_id\",             :precision => 38, :scale => 0\n    t.integer  \"update_only_pirate_id\", :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"created_on\"\n    t.datetime \"updated_at\"\n    t.datetime \"updated_on\"\n  end\n\n  create_table \"speedometers\", :id => false, :force => true do |t|\n    t.string \"speedometer_id\"\n    t.string \"name\"\n    t.string \"dashboard_id\"\n  end\n\n  create_table \"sponsors\", :force => true do |t|\n    t.integer \"club_id\",          :precision => 38, :scale => 0\n    t.integer \"sponsorable_id\",   :precision => 38, :scale => 0\n    t.string  \"sponsorable_type\"\n  end\n\n  create_table \"squares\", :force => true do |t|\n  end\n\n  create_table \"string_key_objects\", :id => false, :force => true do |t|\n    t.string  \"id\"\n    t.string  \"name\"\n    t.integer \"lock_version\", :precision => 38, :scale => 0, :default => 0, :null => false\n  end\n\n  create_table \"students\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"subscribers\", :id => false, :force => true do |t|\n    t.string \"nick\", :null => false\n    t.string \"name\"\n  end\n\n  add_index \"subscribers\", [\"nick\"], :name => \"index_subscribers_on_nick\", :unique => true\n\n  create_table \"subscriptions\", :force => true do |t|\n    t.string  \"subscriber_id\"\n    t.integer \"book_id\",       :precision => 38, :scale => 0\n  end\n\n  create_table \"taggings\", :force => true do |t|\n    t.integer \"tag_id\",        :precision => 38, :scale => 0\n    t.integer \"super_tag_id\",  :precision => 38, :scale => 0\n    t.string  \"taggable_type\"\n    t.integer \"taggable_id\",   :precision => 38, :scale => 0\n    t.string  \"comment\"\n  end\n\n  create_table \"tags\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"taggings_count\", :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"tasks\", :force => true do |t|\n    t.datetime \"starting\"\n    t.datetime \"ending\"\n  end\n\n  create_table \"teapots\", :force => true do |t|\n    t.string   \"name\"\n    t.string   \"type\"\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"test_oracle_defaults\", :force => true do |t|\n    t.string  \"test_char\",   :limit => 1,                                 :default => \"X\",     :null => false\n    t.string  \"test_string\", :limit => 20,                                :default => \"hello\", :null => false\n    t.integer \"test_int\",                  :precision => 38, :scale => 0, :default => 3,       :null => false\n  end\n\n  create_table \"topics\", :force => true do |t|\n    t.string   \"title\"\n    t.string   \"author_name\"\n    t.string   \"author_email_address\"\n    t.datetime \"written_on\"\n    t.datetime \"bonus_time\"\n    t.datetime \"last_read\"\n    t.string   \"content\",              :limit => 4000\n    t.string   \"important\",            :limit => 4000\n    t.boolean  \"approved\",                             :precision => 1,  :scale => 0, :default => true\n    t.integer  \"replies_count\",                        :precision => 38, :scale => 0, :default => 0\n    t.integer  \"parent_id\",                            :precision => 38, :scale => 0\n    t.string   \"parent_title\"\n    t.string   \"type\"\n    t.string   \"group\"\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"toys\", :primary_key => \"toy_id\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"pet_id\",     :precision => 38, :scale => 0\n    t.integer  \"integer\",    :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"traffic_lights\", :force => true do |t|\n    t.string   \"location\"\n    t.string   \"state\"\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"treasures\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"looter_id\",   :precision => 38, :scale => 0\n    t.string  \"looter_type\"\n  end\n\n  create_table \"treaties\", :id => false, :force => true do |t|\n    t.string \"treaty_id\"\n    t.string \"name\"\n  end\n\n  create_table \"triangles\", :force => true do |t|\n  end\n\n  create_table \"tyres\", :force => true do |t|\n    t.integer \"car_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"variants\", :force => true do |t|\n    t.integer \"product_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"vegetables\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"seller_id\",   :precision => 38, :scale => 0\n    t.string  \"custom_type\"\n  end\n\n  create_table \"vertices\", :force => true do |t|\n    t.string \"label\"\n  end\n\n  create_table \"warehouse-things\", :force => true do |t|\n    t.integer \"value\", :precision => 38, :scale => 0\n  end\n\n  create_table \"weirds\", :force => true do |t|\n    t.string \"a$b\"\n  end\n\n  create_table \"wheels\", :force => true do |t|\n    t.integer \"wheelable_id\",   :precision => 38, :scale => 0\n    t.string  \"wheelable_type\"\n  end\n\n  create_table \"zines\", :force => true do |t|\n    t.string \"title\"\n  end\n\n  add_foreign_key \"fk_test_has_fk\", \"fk_test_has_pk\", :column => \"fk_id\", :name => \"fk_name\"\n\n  add_foreign_key \"lessons_students\", \"students\", :name => \"student_id_fk\"\n\n  add_synonym \"subjects\", \"arunit.topics\", :force => true\n\nend\n".

  6) Failure:
test_schema_dump_keeps_large_precision_integer_columns_as_decimal(SchemaDumperTest) [test/cases/schema_dumper_test.rb:293]:
Expected /t.integer\s+"atoms_in_universe",\s+precision: 38,\s+scale: 0/ to match "# encoding: UTF-8\n# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your\n# database schema. If you need to create the application database on another\n# system, you should be using db:schema:load, not running all the migrations\n# from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema.define(version: 0) do\n\n  create_table \"CamelCase\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"accounts\", :force => true do |t|\n    t.integer \"firm_id\",      :precision => 38, :scale => 0\n    t.string  \"firm_name\"\n    t.integer \"credit_limit\", :precision => 38, :scale => 0\n  end\n\n  create_table \"admin_accounts\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"admin_users\", :force => true do |t|\n    t.string  \"name\"\n    t.string  \"settings\",        :limit => 1024\n    t.string  \"preferences\",     :limit => 1024,                                :default => \"\"\n    t.string  \"json_data\",       :limit => 1024\n    t.string  \"json_data_empty\", :limit => 1024,                                :default => \"\"\n    t.integer \"account_id\",                      :precision => 38, :scale => 0\n  end\n\n  create_table \"aircraft\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"audit_logs\", :force => true do |t|\n    t.string  \"message\",                                                 :null => false\n    t.integer \"developer_id\",             :precision => 38, :scale => 0, :null => false\n    t.integer \"unvalidated_developer_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"author_addresses\", :force => true do |t|\n  end\n\n  create_table \"author_favorites\", :force => true do |t|\n    t.integer \"author_id\",          :precision => 38, :scale => 0\n    t.integer \"favorite_author_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"authors\", :force => true do |t|\n    t.string  \"name\",                                                   :null => false\n    t.integer \"author_address_id\",       :precision => 38, :scale => 0\n    t.integer \"author_address_extra_id\", :precision => 38, :scale => 0\n    t.string  \"organization_id\"\n    t.string  \"owned_essay_id\"\n  end\n\n  create_table \"auto_id_tests\", :primary_key => \"auto_id\", :force => true do |t|\n    t.integer \"value\", :precision => 38, :scale => 0\n  end\n\n  create_table \"binaries\", :force => true do |t|\n    t.string \"name\"\n    t.binary \"data\"\n    t.binary \"short_data\"\n  end\n\n  create_table \"birds\", :force => true do |t|\n    t.string  \"name\"\n    t.string  \"color\"\n    t.integer \"pirate_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"books\", :force => true do |t|\n    t.integer \"author_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"booleans\", :force => true do |t|\n    t.boolean \"value\",   :precision => 1, :scale => 0\n    t.boolean \"has_fun\", :precision => 1, :scale => 0, :default => false, :null => false\n  end\n\n  create_table \"bulbs\", :force => true do |t|\n    t.integer \"car_id\",         :precision => 38, :scale => 0\n    t.string  \"name\"\n    t.boolean \"frickinawesome\", :precision => 1,  :scale => 0\n    t.string  \"color\"\n  end\n\n  create_table \"cars\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"engines_count\", :precision => 38, :scale => 0\n    t.integer \"wheels_count\",  :precision => 38, :scale => 0\n    t.integer \"lock_version\",  :precision => 38, :scale => 0, :default => 0, :null => false\n  end\n\n  create_table \"categories\", :force => true do |t|\n    t.string  \"name\",                                                 :null => false\n    t.string  \"type\"\n    t.integer \"categorizations_count\", :precision => 38, :scale => 0\n  end\n\n  create_table \"categories_posts\", :id => false, :force => true do |t|\n    t.integer \"category_id\", :precision => 38, :scale => 0, :null => false\n    t.integer \"post_id\",     :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"categorizations\", :force => true do |t|\n    t.integer \"category_id\",         :precision => 38, :scale => 0\n    t.string  \"named_category_name\"\n    t.integer \"post_id\",             :precision => 38, :scale => 0\n    t.integer \"author_id\",           :precision => 38, :scale => 0\n    t.boolean \"special\",             :precision => 1,  :scale => 0\n  end\n\n  create_table \"circles\", :force => true do |t|\n  end\n\n  create_table \"citations\", :force => true do |t|\n    t.integer \"book1_id\", :precision => 38, :scale => 0\n    t.integer \"book2_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"clubs\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"category_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"cold_jokes\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"collections\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"colnametests\", :force => true do |t|\n    t.integer \"references\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"comments\", :force => true do |t|\n    t.integer \"post_id\",                        :precision => 38, :scale => 0,                :null => false\n    t.string  \"body\",           :limit => 4000,                                               :null => false\n    t.string  \"type\"\n    t.integer \"taggings_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"children_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"parent_id\",                      :precision => 38, :scale => 0\n  end\n\n  create_table \"companies\", :force => true do |t|\n    t.string  \"type\"\n    t.integer \"firm_id\",     :precision => 38, :scale => 0\n    t.string  \"firm_name\"\n    t.string  \"name\"\n    t.integer \"client_of\",   :precision => 38, :scale => 0\n    t.integer \"rating\",      :precision => 38, :scale => 0, :default => 1\n    t.integer \"account_id\",  :precision => 38, :scale => 0\n    t.string  \"description\",                                :default => \"\"\n  end\n\n  add_index \"companies\", [\"firm_id\", \"type\", \"rating\"], :name => \"company_index\"\n  add_index \"companies\", [\"firm_id\", \"type\"], :name => \"company_partial_index\"\n\n  create_table \"computers\", :force => true do |t|\n    t.integer \"developer\",        :precision => 38, :scale => 0, :null => false\n    t.integer \"extendedWarranty\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"contracts\", :force => true do |t|\n    t.integer \"developer_id\", :precision => 38, :scale => 0\n    t.integer \"company_id\",   :precision => 38, :scale => 0\n  end\n\n  create_table \"countries\", :id => false, :force => true do |t|\n    t.string \"country_id\"\n    t.string \"name\"\n  end\n\n  create_table \"countries_treaties\", :id => false, :force => true do |t|\n    t.string \"country_id\", :null => false\n    t.string \"treaty_id\",  :null => false\n  end\n\n  create_table \"customers\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"balance\",         :precision => 38, :scale => 0, :default => 0\n    t.string  \"address_street\"\n    t.string  \"address_city\"\n    t.string  \"address_country\"\n    t.string  \"gps_location\"\n  end\n\n  create_table \"dashboards\", :id => false, :force => true do |t|\n    t.string \"dashboard_id\"\n    t.string \"name\"\n  end\n\n  create_table \"defaults\", :id => false, :force => true do |t|\n    t.integer  \"id\",                                   :precision => 38, :scale => 0,                                    :null => false\n    t.datetime \"modified_date\"\n    t.datetime \"modified_date_function\"\n    t.datetime \"fixed_date\",                                                          :default => '2004-01-01 00:00:00'\n    t.datetime \"modified_time\"\n    t.datetime \"modified_time_function\"\n    t.datetime \"fixed_time\",                                                          :default => '2004-01-01 00:00:00'\n    t.string   \"char1\",                  :limit => 1,                                 :default => \"Y\"\n    t.string   \"char2\",                  :limit => 50,                                :default => \"a varchar field\"\n    t.text     \"char3\",                                                               :default => \"a text field\"\n    t.integer  \"positive_integer\",                     :precision => 38, :scale => 0, :default => 1\n    t.integer  \"negative_integer\",                     :precision => 38, :scale => 0, :default => -1\n    t.decimal  \"decimal_number\",                       :precision => 3,  :scale => 2, :default => 2.78\n  end\n\n  create_table \"developers\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"salary\",     :precision => 38, :scale => 0, :default => 70000\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"developers_projects\", :id => false, :force => true do |t|\n    t.integer  \"developer_id\", :precision => 38, :scale => 0,                :null => false\n    t.integer  \"project_id\",   :precision => 38, :scale => 0,                :null => false\n    t.datetime \"joined_on\"\n    t.integer  \"access_level\", :precision => 38, :scale => 0, :default => 1\n  end\n\n  create_table \"dog_lovers\", :force => true do |t|\n    t.integer \"trained_dogs_count\", :precision => 38, :scale => 0, :default => 0\n    t.integer \"bred_dogs_count\",    :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"dogs\", :force => true do |t|\n    t.integer \"trainer_id\", :precision => 38, :scale => 0\n    t.integer \"breeder_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"edges\", :id => false, :force => true do |t|\n    t.integer \"source_id\", :precision => 38, :scale => 0, :null => false\n    t.integer \"sink_id\",   :precision => 38, :scale => 0, :null => false\n  end\n\n  add_index \"edges\", [\"source_id\", \"sink_id\"], :name => \"unique_edge_index\", :unique => true\n\n  create_table \"electrons\", :force => true do |t|\n    t.integer \"molecule_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"engines\", :force => true do |t|\n    t.integer \"car_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"entrants\", :force => true do |t|\n    t.string  \"name\",                                     :null => false\n    t.integer \"course_id\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"essays\", :force => true do |t|\n    t.string \"name\"\n    t.string \"writer_id\"\n    t.string \"writer_type\"\n    t.string \"category_id\"\n    t.string \"author_id\"\n  end\n\n  create_table \"events\", :force => true do |t|\n    t.string \"title\", :limit => 5\n  end\n\n  create_table \"eyes\", :force => true do |t|\n  end\n\n  create_table \"faces\", :force => true do |t|\n    t.string  \"description\"\n    t.integer \"man_id\",                        :precision => 38, :scale => 0\n    t.integer \"polymorphic_man_id\",            :precision => 38, :scale => 0\n    t.string  \"polymorphic_man_type\"\n    t.integer \"horrible_polymorphic_man_id\",   :precision => 38, :scale => 0\n    t.string  \"horrible_polymorphic_man_type\"\n  end\n\n  create_table \"fk_test_has_fk\", :force => true do |t|\n    t.integer \"fk_id\", :precision => 38, :scale => 0, :null => false\n  end\n\n  create_table \"fk_test_has_pk\", :force => true do |t|\n  end\n\n  create_table \"friendships\", :force => true do |t|\n    t.integer \"friend_id\", :precision => 38, :scale => 0\n    t.integer \"person_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"funny_jokes\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"goofy_string_id\", :id => false, :force => true do |t|\n    t.string \"id\",   :null => false\n    t.string \"info\"\n  end\n\n  create_table \"guids\", :force => true do |t|\n    t.string \"key\"\n  end\n\n  create_table \"having\", :force => true do |t|\n    t.string \"where\"\n  end\n\n  create_table \"inept_wizards\", :force => true do |t|\n    t.string \"name\", :null => false\n    t.string \"city\", :null => false\n    t.string \"type\"\n  end\n\n  create_table \"integer_limits\", :force => true do |t|\n    t.integer \"c_int_without_limit\",              :precision => 38, :scale => 0\n    t.boolean \"c_int_1\",                          :precision => 1,  :scale => 0\n    t.integer \"c_int_2\",             :limit => 2, :precision => 2,  :scale => 0\n    t.integer \"c_int_3\",             :limit => 3, :precision => 3,  :scale => 0\n    t.integer \"c_int_4\",             :limit => 4, :precision => 4,  :scale => 0\n    t.integer \"c_int_5\",             :limit => 5, :precision => 5,  :scale => 0\n    t.integer \"c_int_6\",             :limit => 6, :precision => 6,  :scale => 0\n    t.integer \"c_int_7\",             :limit => 7, :precision => 7,  :scale => 0\n    t.integer \"c_int_8\",             :limit => 8, :precision => 8,  :scale => 0\n  end\n\n  create_table \"interests\", :force => true do |t|\n    t.string  \"topic\"\n    t.integer \"man_id\",               :precision => 38, :scale => 0\n    t.integer \"polymorphic_man_id\",   :precision => 38, :scale => 0\n    t.string  \"polymorphic_man_type\"\n    t.integer \"zine_id\",              :precision => 38, :scale => 0\n  end\n\n  create_table \"invoices\", :force => true do |t|\n    t.integer  \"balance\",    :precision => 38, :scale => 0\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"iris\", :force => true do |t|\n    t.integer \"eye_id\", :precision => 38, :scale => 0\n    t.string  \"color\"\n  end\n\n  create_table \"items\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"jobs\", :force => true do |t|\n    t.integer \"ideal_reference_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"keyboards\", :primary_key => \"key_number\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"legacy_things\", :force => true do |t|\n    t.integer \"tps_report_number\", :precision => 38, :scale => 0\n    t.integer \"version\",           :precision => 38, :scale => 0, :default => 0, :null => false\n  end\n\n  create_table \"lessons\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"lessons_students\", :id => false, :force => true do |t|\n    t.integer \"lesson_id\",  :precision => 38, :scale => 0\n    t.integer \"student_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"line_items\", :force => true do |t|\n    t.integer \"invoice_id\", :precision => 38, :scale => 0\n    t.integer \"amount\",     :precision => 38, :scale => 0\n  end\n\n  create_table \"lint_models\", :force => true do |t|\n  end\n\n  create_table \"liquid\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"lock_without_defaults\", :force => true do |t|\n    t.integer \"lock_version\", :precision => 38, :scale => 0\n  end\n\n  create_table \"lock_without_defaults_cust\", :force => true do |t|\n    t.integer \"custom_lock_version\", :precision => 38, :scale => 0\n  end\n\n  create_table \"mateys\", :id => false, :force => true do |t|\n    t.integer \"pirate_id\", :precision => 38, :scale => 0\n    t.integer \"target_id\", :precision => 38, :scale => 0\n    t.integer \"weight\",    :precision => 38, :scale => 0\n  end\n\n  create_table \"member_details\", :force => true do |t|\n    t.integer \"member_id\",       :precision => 38, :scale => 0\n    t.integer \"organization_id\", :precision => 38, :scale => 0\n    t.string  \"extra_data\"\n  end\n\n  create_table \"member_friends\", :id => false, :force => true do |t|\n    t.integer \"member_id\", :precision => 38, :scale => 0\n    t.integer \"friend_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"member_types\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"members\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"member_type_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"memberships\", :force => true do |t|\n    t.datetime \"joined_on\"\n    t.integer  \"club_id\",   :precision => 38, :scale => 0\n    t.integer  \"member_id\", :precision => 38, :scale => 0\n    t.boolean  \"favourite\", :precision => 1,  :scale => 0, :default => false\n    t.string   \"type\"\n  end\n\n  create_table \"men\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"minimalistics\", :force => true do |t|\n  end\n\n  create_table \"minivans\", :id => false, :force => true do |t|\n    t.string \"minivan_id\"\n    t.string \"name\"\n    t.string \"speedometer_id\"\n    t.string \"color\"\n  end\n\n  create_table \"mixed_case_monkeys\", :primary_key => \"monkeyID\", :force => true do |t|\n    t.integer \"fleaCount\", :precision => 38, :scale => 0\n  end\n\n  create_table \"mixins\", :force => true do |t|\n    t.integer  \"parent_id\",  :precision => 38, :scale => 0\n    t.integer  \"pos\",        :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n    t.integer  \"lft\",        :precision => 38, :scale => 0\n    t.integer  \"rgt\",        :precision => 38, :scale => 0\n    t.integer  \"root_id\",    :precision => 38, :scale => 0\n    t.string   \"type\"\n  end\n\n  create_table \"molecules\", :force => true do |t|\n    t.integer \"liquid_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"movies\", :primary_key => \"movieid\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"non_poly_ones\", :force => true do |t|\n  end\n\n  create_table \"non_poly_twos\", :force => true do |t|\n  end\n\n  create_table \"numeric_data\", :force => true do |t|\n    t.decimal \"bank_balance\",                              :precision => 10, :scale => 2\n    t.decimal \"big_bank_balance\",                          :precision => 15, :scale => 2\n    t.integer \"world_population\",            :limit => 10, :precision => 10, :scale => 0\n    t.integer \"my_house_population\",         :limit => 2,  :precision => 2,  :scale => 0\n    t.decimal \"decimal_number_with_default\",               :precision => 3,  :scale => 2, :default => 2.78\n    t.decimal \"temperature\"\n    t.integer \"atoms_in_universe\",                         :precision => 38, :scale => 0\n  end\n\n  create_table \"orders\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"billing_customer_id\",  :precision => 38, :scale => 0\n    t.integer \"shipping_customer_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"organizations\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"owners\", :primary_key => \"owner_id\", :force => true do |t|\n    t.string   \"name\"\n    t.datetime \"updated_at\"\n    t.datetime \"happy_at\"\n    t.string   \"essay_id\"\n  end\n\n  create_table \"p_schema_migrations_s\", :id => false, :force => true do |t|\n    t.string \"version\", :null => false\n  end\n\n  add_index \"p_schema_migrations_s\", [\"version\"], :name => \"p_unique_schema_migrations_s\", :unique => true\n\n  create_table \"paint_colors\", :force => true do |t|\n    t.integer \"non_poly_one_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"paint_textures\", :force => true do |t|\n    t.integer \"non_poly_two_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"parrots\", :force => true do |t|\n    t.string   \"name\"\n    t.string   \"color\"\n    t.string   \"parrot_sti_class\"\n    t.integer  \"killer_id\",        :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"created_on\"\n    t.datetime \"updated_at\"\n    t.datetime \"updated_on\"\n  end\n\n  create_table \"parrots_pirates\", :id => false, :force => true do |t|\n    t.integer \"parrot_id\", :precision => 38, :scale => 0\n    t.integer \"pirate_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"parrots_treasures\", :id => false, :force => true do |t|\n    t.integer \"parrot_id\",   :precision => 38, :scale => 0\n    t.integer \"treasure_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"people\", :force => true do |t|\n    t.string   \"first_name\",                                                                    :null => false\n    t.integer  \"primary_contact_id\",              :precision => 38, :scale => 0\n    t.string   \"gender\",             :limit => 1\n    t.integer  \"number1_fan_id\",                  :precision => 38, :scale => 0\n    t.integer  \"lock_version\",                    :precision => 38, :scale => 0, :default => 0, :null => false\n    t.string   \"comments\"\n    t.integer  \"followers_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer  \"best_friend_id\",                  :precision => 38, :scale => 0\n    t.integer  \"best_friend_of_id\",               :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"peoples_treasures\", :id => false, :force => true do |t|\n    t.integer \"rich_person_id\", :precision => 38, :scale => 0\n    t.integer \"treasure_id\",    :precision => 38, :scale => 0\n  end\n\n  create_table \"pets\", :primary_key => \"pet_id\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"owner_id\",   :precision => 38, :scale => 0\n    t.integer  \"integer\",    :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"updated_at\"\n  end\n\n  create_table \"pirates\", :force => true do |t|\n    t.string   \"catchphrase\"\n    t.integer  \"parrot_id\",               :precision => 38, :scale => 0\n    t.integer  \"non_validated_parrot_id\", :precision => 38, :scale => 0\n    t.datetime \"created_on\"\n    t.datetime \"updated_on\"\n  end\n\n  create_table \"posts\", :force => true do |t|\n    t.integer \"author_id\",                                      :precision => 38, :scale => 0\n    t.string  \"title\",                                                                                        :null => false\n    t.string  \"body\",                           :limit => 4000,                                               :null => false\n    t.string  \"type\"\n    t.integer \"comments_count\",                                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"taggings_count\",                                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"taggings_with_delete_all_count\",                 :precision => 38, :scale => 0, :default => 0\n    t.integer \"taggings_with_destroy_count\",                    :precision => 38, :scale => 0, :default => 0\n    t.integer \"tags_count\",                                     :precision => 38, :scale => 0, :default => 0\n    t.integer \"tags_with_destroy_count\",                        :precision => 38, :scale => 0, :default => 0\n    t.integer \"tags_with_nullify_count\",                        :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"price_estimates\", :force => true do |t|\n    t.string  \"estimate_of_type\"\n    t.integer \"estimate_of_id\",   :precision => 38, :scale => 0\n    t.integer \"price\",            :precision => 38, :scale => 0\n  end\n\n  create_table \"products\", :force => true do |t|\n    t.integer \"collection_id\", :precision => 38, :scale => 0\n    t.string  \"name\"\n  end\n\n  create_table \"projects\", :force => true do |t|\n    t.string \"name\"\n    t.string \"type\"\n  end\n\n  create_table \"randomly_named_table\", :force => true do |t|\n    t.string  \"some_attribute\"\n    t.integer \"another_attribute\", :precision => 38, :scale => 0\n  end\n\n  create_table \"ratings\", :force => true do |t|\n    t.integer \"comment_id\", :precision => 38, :scale => 0\n    t.integer \"value\",      :precision => 38, :scale => 0\n  end\n\n  create_table \"readers\", :force => true do |t|\n    t.integer \"post_id\",   :precision => 38, :scale => 0,                    :null => false\n    t.integer \"person_id\", :precision => 38, :scale => 0,                    :null => false\n    t.boolean \"skimmer\",   :precision => 1,  :scale => 0, :default => false\n  end\n\n  create_table \"references\", :force => true do |t|\n    t.integer \"person_id\",    :precision => 38, :scale => 0\n    t.integer \"job_id\",       :precision => 38, :scale => 0\n    t.boolean \"favourite\",    :precision => 1,  :scale => 0\n    t.integer \"lock_version\", :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"shape_expressions\", :force => true do |t|\n    t.string  \"paint_type\"\n    t.integer \"paint_id\",   :precision => 38, :scale => 0\n    t.string  \"shape_type\"\n    t.integer \"shape_id\",   :precision => 38, :scale => 0\n  end\n\n  create_table \"ship_parts\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"ship_id\", :precision => 38, :scale => 0\n  end\n\n  create_table \"ships\", :force => true do |t|\n    t.string   \"name\"\n    t.integer  \"pirate_id\",             :precision => 38, :scale => 0\n    t.integer  \"update_only_pirate_id\", :precision => 38, :scale => 0\n    t.datetime \"created_at\"\n    t.datetime \"created_on\"\n    t.datetime \"updated_at\"\n    t.datetime \"updated_on\"\n  end\n\n  create_table \"speedometers\", :id => false, :force => true do |t|\n    t.string \"speedometer_id\"\n    t.string \"name\"\n    t.string \"dashboard_id\"\n  end\n\n  create_table \"sponsors\", :force => true do |t|\n    t.integer \"club_id\",          :precision => 38, :scale => 0\n    t.integer \"sponsorable_id\",   :precision => 38, :scale => 0\n    t.string  \"sponsorable_type\"\n  end\n\n  create_table \"squares\", :force => true do |t|\n  end\n\n  create_table \"string_key_objects\", :id => false, :force => true do |t|\n    t.string  \"id\"\n    t.string  \"name\"\n    t.integer \"lock_version\", :precision => 38, :scale => 0, :default => 0, :null => false\n  end\n\n  create_table \"students\", :force => true do |t|\n    t.string \"name\"\n  end\n\n  create_table \"subscribers\", :id => false, :force => true do |t|\n    t.string \"nick\", :null => false\n    t.string \"name\"\n  end\n\n  add_index \"subscribers\", [\"nick\"], :name => \"index_subscribers_on_nick\", :unique => true\n\n  create_table \"subscriptions\", :force => true do |t|\n    t.string  \"subscriber_id\"\n    t.integer \"book_id\",       :precision => 38, :scale => 0\n  end\n\n  create_table \"taggings\", :force => true do |t|\n    t.integer \"tag_id\",        :precision => 38, :scale => 0\n    t.integer \"super_tag_id\",  :precision => 38, :scale => 0\n    t.string  \"taggable_type\"\n    t.integer \"taggable_id\",   :precision => 38, :scale => 0\n    t.string  \"comment\"\n  end\n\n  create_table \"tags\", :force => true do |t|\n    t.string  \"name\"\n    t.integer \"taggings_count\", :precision => 38, :scale => 0, :default => 0\n  end\n\n  create_table \"tasks\", :force => true do |t|\n    t.datetime \"starting\"\n    t.datetime \"ending\"\n  end\n\n  create_table \"teapots\", :force => true do |t|\n    t.string   \"name\"\n    t.string   \"type\"\n    t.datetime \"created_at\"\n    t.datetime \"update
yahonda commented 12 years ago

Fixed in #229