rsim/oracle-enhanced — pull request #248 by yahonda (2012-11-13 19:29:42+00:00)
Title: Address schema dumper test failure

This pull request addresses the following failure by cheey-picking c4601179 and 3bd1a42cf86e6fb74d0795f386e5b983c304bedb, both of which were merged to rails4 branch.

```ruby

$ ARCONN=oracle ruby -Ilib:test test/cases/schema_dumper_test.rb -n test_schema_dump_with_table_name_prefix_and_suffix

*** Mocha deprecation warning: Change `require 'mocha'` to `require 'mocha/setup'`.

Using oracle with Identity Map off
Run options: -n test_schema_dump_with_table_name_prefix_and_suffix

# Running tests:

F

Finished tests in 4.358613s, 0.2294 tests/s, 0.6883 assertions/s.

1) Failure:
test_schema_dump_with_table_name_prefix_and_suffix(SchemaDumperTest) [test/cases/schema_dumper_test.rb:270]:
expected to not 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 to 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.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 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.string \"ruby_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 end\n\n add_index \"companies\", [\"firm_id\", \"type\", \"rating\", \"ruby_type\"], :name => \"company_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 \"dogs\", :force => true do |t|\n t.string \"name\"\n end\n\n add_index \"dogs\", [\"name\"], :name => \"index_foo_dogs_bar_on_name\"\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 \"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\", :null => false\n t.datetime \"updated_at\", :null => false\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\", :null => false\n t.datetime \"updated_at\", :null => false\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 \"schema_migrations\", :id => false, :force => true do |t|\n t.string \"version\", :null => false\n end\n\n add_index \"schema_migrations\", [\"version\"], :name => \"unique_schema_migrations\", :unique => true\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 t.integer \"books_count\", :precision => 38, :scale => 0, :default => 0, :null => false\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\", :null => false\n t.datetime \"updated_at\", :null => false\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\", :null => false\n t.datetime \"updated_at\", :null => false\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.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">.

1 tests, 3 assertions, 1 failures, 0 errors, 0 skips
$
```