mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
0ed096ddf5
Also removes a false positive test that depends on the fixed bug: At this time, counter_cache does not work with polymorphic relationships (which is a bug). The test was added to make sure that no StaleObjectError is raised when the car is destroyed. No such error is currently raised because the lock version is not incremented by appending a wheel to the car. Furthermore, `assert_difference` succeeds because `car.wheels.count` does not check the counter cache, but the collection size. The test will fail if it is replaced with `car.wheels_count || 0`.
941 lines
24 KiB
Ruby
941 lines
24 KiB
Ruby
|
|
ActiveRecord::Schema.define do
|
|
def except(adapter_names_to_exclude)
|
|
unless [adapter_names_to_exclude].flatten.include?(adapter_name)
|
|
yield
|
|
end
|
|
end
|
|
|
|
# ------------------------------------------------------------------- #
|
|
# #
|
|
# Please keep these create table statements in alphabetical order #
|
|
# unless the ordering matters. In which case, define them below. #
|
|
# #
|
|
# ------------------------------------------------------------------- #
|
|
|
|
create_table :accounts, force: true do |t|
|
|
t.integer :firm_id
|
|
t.string :firm_name
|
|
t.integer :credit_limit
|
|
end
|
|
|
|
create_table :admin_accounts, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :admin_users, force: true do |t|
|
|
t.string :name
|
|
t.string :settings, null: true, limit: 1024
|
|
# MySQL does not allow default values for blobs. Fake it out with a
|
|
# big varchar below.
|
|
t.string :preferences, null: true, default: '', limit: 1024
|
|
t.string :json_data, null: true, limit: 1024
|
|
t.string :json_data_empty, null: true, default: "", limit: 1024
|
|
t.text :params
|
|
t.references :account
|
|
end
|
|
|
|
create_table :aircraft, force: true do |t|
|
|
t.string :name
|
|
t.integer :wheels_count, default: 0, null: false
|
|
end
|
|
|
|
create_table :articles, force: true do |t|
|
|
end
|
|
|
|
create_table :articles_magazines, force: true do |t|
|
|
t.references :article
|
|
t.references :magazine
|
|
end
|
|
|
|
create_table :articles_tags, force: true do |t|
|
|
t.references :article
|
|
t.references :tag
|
|
end
|
|
|
|
create_table :audit_logs, force: true do |t|
|
|
t.column :message, :string, null: false
|
|
t.column :developer_id, :integer, null: false
|
|
t.integer :unvalidated_developer_id
|
|
end
|
|
|
|
create_table :authors, force: true do |t|
|
|
t.string :name, null: false
|
|
t.integer :author_address_id
|
|
t.integer :author_address_extra_id
|
|
t.string :organization_id
|
|
t.string :owned_essay_id
|
|
end
|
|
|
|
create_table :author_addresses, force: true do |t|
|
|
end
|
|
|
|
add_foreign_key :authors, :author_addresses
|
|
|
|
create_table :author_favorites, force: true do |t|
|
|
t.column :author_id, :integer
|
|
t.column :favorite_author_id, :integer
|
|
end
|
|
|
|
create_table :auto_id_tests, force: true, id: false do |t|
|
|
t.primary_key :auto_id
|
|
t.integer :value
|
|
end
|
|
|
|
create_table :binaries, force: true do |t|
|
|
t.string :name
|
|
t.binary :data
|
|
t.binary :short_data, limit: 2048
|
|
end
|
|
|
|
create_table :birds, force: true do |t|
|
|
t.string :name
|
|
t.string :color
|
|
t.integer :pirate_id
|
|
end
|
|
|
|
create_table :books, force: true do |t|
|
|
t.integer :author_id
|
|
t.string :format
|
|
t.column :name, :string
|
|
t.column :status, :integer, default: 0
|
|
t.column :read_status, :integer, default: 0
|
|
t.column :nullable_status, :integer
|
|
t.column :language, :integer, default: 0
|
|
t.column :author_visibility, :integer, default: 0
|
|
t.column :illustrator_visibility, :integer, default: 0
|
|
t.column :font_size, :integer, default: 0
|
|
end
|
|
|
|
create_table :booleans, force: true do |t|
|
|
t.boolean :value
|
|
t.boolean :has_fun, null: false, default: false
|
|
end
|
|
|
|
create_table :bulbs, force: true do |t|
|
|
t.integer :car_id
|
|
t.string :name
|
|
t.boolean :frickinawesome
|
|
t.string :color
|
|
end
|
|
|
|
create_table "CamelCase", force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :cars, force: true do |t|
|
|
t.string :name
|
|
t.integer :engines_count
|
|
t.integer :wheels_count
|
|
t.column :lock_version, :integer, null: false, default: 0
|
|
t.timestamps null: false
|
|
end
|
|
|
|
create_table :categories, force: true do |t|
|
|
t.string :name, null: false
|
|
t.string :type
|
|
t.integer :categorizations_count
|
|
end
|
|
|
|
create_table :categories_posts, force: true, id: false do |t|
|
|
t.integer :category_id, null: false
|
|
t.integer :post_id, null: false
|
|
end
|
|
|
|
create_table :categorizations, force: true do |t|
|
|
t.column :category_id, :integer
|
|
t.string :named_category_name
|
|
t.column :post_id, :integer
|
|
t.column :author_id, :integer
|
|
t.column :special, :boolean
|
|
end
|
|
|
|
create_table :citations, force: true do |t|
|
|
t.column :book1_id, :integer
|
|
t.column :book2_id, :integer
|
|
end
|
|
|
|
create_table :clubs, force: true do |t|
|
|
t.string :name
|
|
t.integer :category_id
|
|
end
|
|
|
|
create_table :collections, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :colnametests, force: true do |t|
|
|
t.integer :references, null: false
|
|
end
|
|
|
|
create_table :columns, force: true do |t|
|
|
t.references :record
|
|
end
|
|
|
|
create_table :comments, force: true do |t|
|
|
t.integer :post_id, null: false
|
|
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
|
|
# Oracle SELECT WHERE clause which causes many unit test failures
|
|
if current_adapter?(:OracleAdapter)
|
|
t.string :body, null: false, limit: 4000
|
|
else
|
|
t.text :body, null: false
|
|
end
|
|
t.string :type
|
|
t.integer :tags_count, default: 0
|
|
t.integer :children_count, default: 0
|
|
t.integer :parent_id
|
|
t.references :author, polymorphic: true
|
|
t.string :resource_id
|
|
t.string :resource_type
|
|
t.integer :developer_id
|
|
end
|
|
|
|
create_table :companies, force: true do |t|
|
|
t.string :type
|
|
t.integer :firm_id
|
|
t.string :firm_name
|
|
t.string :name
|
|
t.integer :client_of
|
|
t.integer :rating, default: 1
|
|
t.integer :account_id
|
|
t.string :description, default: ""
|
|
end
|
|
|
|
add_index :companies, [:firm_id, :type, :rating], name: "company_index"
|
|
add_index :companies, [:firm_id, :type], name: "company_partial_index", where: "rating > 10"
|
|
add_index :companies, :name, name: 'company_name_index', using: :btree
|
|
|
|
create_table :vegetables, force: true do |t|
|
|
t.string :name
|
|
t.integer :seller_id
|
|
t.string :custom_type
|
|
end
|
|
|
|
create_table :computers, force: true do |t|
|
|
t.string :system
|
|
t.integer :developer, null: false
|
|
t.integer :extendedWarranty, null: false
|
|
end
|
|
|
|
create_table :computers_developers, id: false, force: true do |t|
|
|
t.references :computer
|
|
t.references :developer
|
|
end
|
|
|
|
create_table :contracts, force: true do |t|
|
|
t.integer :developer_id
|
|
t.integer :company_id
|
|
end
|
|
|
|
create_table :customers, force: true do |t|
|
|
t.string :name
|
|
t.integer :balance, default: 0
|
|
t.string :address_street
|
|
t.string :address_city
|
|
t.string :address_country
|
|
t.string :gps_location
|
|
end
|
|
|
|
create_table :dashboards, force: true, id: false do |t|
|
|
t.string :dashboard_id
|
|
t.string :name
|
|
end
|
|
|
|
create_table :developers, force: true do |t|
|
|
t.string :name
|
|
t.integer :salary, default: 70000
|
|
t.datetime :created_at
|
|
t.datetime :updated_at
|
|
t.datetime :created_on
|
|
t.datetime :updated_on
|
|
end
|
|
|
|
create_table :developers_projects, force: true, id: false do |t|
|
|
t.integer :developer_id, null: false
|
|
t.integer :project_id, null: false
|
|
t.date :joined_on
|
|
t.integer :access_level, default: 1
|
|
end
|
|
|
|
create_table :dog_lovers, force: true do |t|
|
|
t.integer :trained_dogs_count, default: 0
|
|
t.integer :bred_dogs_count, default: 0
|
|
t.integer :dogs_count, default: 0
|
|
end
|
|
|
|
create_table :dogs, force: true do |t|
|
|
t.integer :trainer_id
|
|
t.integer :breeder_id
|
|
t.integer :dog_lover_id
|
|
t.string :alias
|
|
end
|
|
|
|
create_table :doubloons, force: true do |t|
|
|
t.integer :pirate_id
|
|
t.integer :weight
|
|
end
|
|
|
|
create_table :edges, force: true, id: false do |t|
|
|
t.column :source_id, :integer, null: false
|
|
t.column :sink_id, :integer, null: false
|
|
end
|
|
add_index :edges, [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
|
|
|
|
create_table :engines, force: true do |t|
|
|
t.integer :car_id
|
|
end
|
|
|
|
create_table :entrants, force: true do |t|
|
|
t.string :name, null: false
|
|
t.integer :course_id, null: false
|
|
end
|
|
|
|
create_table :essays, force: true do |t|
|
|
t.string :name
|
|
t.string :writer_id
|
|
t.string :writer_type
|
|
t.string :category_id
|
|
t.string :author_id
|
|
end
|
|
|
|
create_table :events, force: true do |t|
|
|
t.string :title, limit: 5
|
|
end
|
|
|
|
create_table :eyes, force: true do |t|
|
|
end
|
|
|
|
create_table :funny_jokes, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :cold_jokes, force: true do |t|
|
|
t.string :cold_name
|
|
end
|
|
|
|
create_table :friendships, force: true do |t|
|
|
t.integer :friend_id
|
|
t.integer :follower_id
|
|
end
|
|
|
|
create_table :goofy_string_id, force: true, id: false do |t|
|
|
t.string :id, null: false
|
|
t.string :info
|
|
end
|
|
|
|
create_table :having, force: true do |t|
|
|
t.string :where
|
|
end
|
|
|
|
create_table :guids, force: true do |t|
|
|
t.column :key, :string
|
|
end
|
|
|
|
create_table :inept_wizards, force: true do |t|
|
|
t.column :name, :string, null: false
|
|
t.column :city, :string, null: false
|
|
t.column :type, :string
|
|
end
|
|
|
|
create_table :integer_limits, force: true do |t|
|
|
t.integer :"c_int_without_limit"
|
|
(1..8).each do |i|
|
|
t.integer :"c_int_#{i}", limit: i
|
|
end
|
|
end
|
|
|
|
create_table :invoices, force: true do |t|
|
|
t.integer :balance
|
|
t.datetime :updated_at
|
|
end
|
|
|
|
create_table :iris, force: true do |t|
|
|
t.references :eye
|
|
t.string :color
|
|
end
|
|
|
|
create_table :items, force: true do |t|
|
|
t.column :name, :string
|
|
end
|
|
|
|
create_table :jobs, force: true do |t|
|
|
t.integer :ideal_reference_id
|
|
end
|
|
|
|
create_table :keyboards, force: true, id: false do |t|
|
|
t.primary_key :key_number
|
|
t.string :name
|
|
end
|
|
|
|
create_table :legacy_things, force: true do |t|
|
|
t.integer :tps_report_number
|
|
t.integer :version, null: false, default: 0
|
|
end
|
|
|
|
create_table :lessons, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :lessons_students, id: false, force: true do |t|
|
|
t.references :lesson
|
|
t.references :student
|
|
end
|
|
|
|
create_table :lint_models, force: true
|
|
|
|
create_table :line_items, force: true do |t|
|
|
t.integer :invoice_id
|
|
t.integer :amount
|
|
end
|
|
|
|
create_table :lock_without_defaults, force: true do |t|
|
|
t.column :lock_version, :integer
|
|
end
|
|
|
|
create_table :lock_without_defaults_cust, force: true do |t|
|
|
t.column :custom_lock_version, :integer
|
|
end
|
|
|
|
create_table :magazines, force: true do |t|
|
|
end
|
|
|
|
create_table :mateys, id: false, force: true do |t|
|
|
t.column :pirate_id, :integer
|
|
t.column :target_id, :integer
|
|
t.column :weight, :integer
|
|
end
|
|
|
|
create_table :members, force: true do |t|
|
|
t.string :name
|
|
t.integer :member_type_id
|
|
end
|
|
|
|
create_table :member_details, force: true do |t|
|
|
t.integer :member_id
|
|
t.integer :organization_id
|
|
t.string :extra_data
|
|
end
|
|
|
|
create_table :member_friends, force: true, id: false do |t|
|
|
t.integer :member_id
|
|
t.integer :friend_id
|
|
end
|
|
|
|
create_table :memberships, force: true do |t|
|
|
t.datetime :joined_on
|
|
t.integer :club_id, :member_id
|
|
t.boolean :favourite, default: false
|
|
t.string :type
|
|
end
|
|
|
|
create_table :member_types, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :minivans, force: true, id: false do |t|
|
|
t.string :minivan_id
|
|
t.string :name
|
|
t.string :speedometer_id
|
|
t.string :color
|
|
end
|
|
|
|
create_table :minimalistics, force: true do |t|
|
|
end
|
|
|
|
create_table :mixed_case_monkeys, force: true, id: false do |t|
|
|
t.primary_key :monkeyID
|
|
t.integer :fleaCount
|
|
end
|
|
|
|
create_table :mixins, force: true do |t|
|
|
t.integer :parent_id
|
|
t.integer :pos
|
|
t.datetime :created_at
|
|
t.datetime :updated_at
|
|
t.integer :lft
|
|
t.integer :rgt
|
|
t.integer :root_id
|
|
t.string :type
|
|
end
|
|
|
|
create_table :movies, force: true, id: false do |t|
|
|
t.primary_key :movieid
|
|
t.string :name
|
|
end
|
|
|
|
create_table :notifications, force: true do |t|
|
|
t.string :message
|
|
end
|
|
|
|
create_table :numeric_data, force: true do |t|
|
|
t.decimal :bank_balance, precision: 10, scale: 2
|
|
t.decimal :big_bank_balance, precision: 15, scale: 2
|
|
t.decimal :world_population, precision: 10, scale: 0
|
|
t.decimal :my_house_population, precision: 2, scale: 0
|
|
t.decimal :decimal_number_with_default, precision: 3, scale: 2, default: 2.78
|
|
t.float :temperature
|
|
# Oracle/SQLServer supports precision up to 38
|
|
if current_adapter?(:OracleAdapter, :SQLServerAdapter)
|
|
t.decimal :atoms_in_universe, precision: 38, scale: 0
|
|
elsif current_adapter?(:FbAdapter)
|
|
t.decimal :atoms_in_universe, precision: 18, scale: 0
|
|
else
|
|
t.decimal :atoms_in_universe, precision: 55, scale: 0
|
|
end
|
|
end
|
|
|
|
create_table :orders, force: true do |t|
|
|
t.string :name
|
|
t.integer :billing_customer_id
|
|
t.integer :shipping_customer_id
|
|
end
|
|
|
|
create_table :organizations, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :owners, primary_key: :owner_id, force: true do |t|
|
|
t.string :name
|
|
t.column :updated_at, :datetime
|
|
t.column :happy_at, :datetime
|
|
t.string :essay_id
|
|
end
|
|
|
|
create_table :paint_colors, force: true do |t|
|
|
t.integer :non_poly_one_id
|
|
end
|
|
|
|
create_table :paint_textures, force: true do |t|
|
|
t.integer :non_poly_two_id
|
|
end
|
|
|
|
create_table :parrots, force: true do |t|
|
|
t.column :name, :string
|
|
t.column :color, :string
|
|
t.column :parrot_sti_class, :string
|
|
t.column :killer_id, :integer
|
|
t.column :created_at, :datetime
|
|
t.column :created_on, :datetime
|
|
t.column :updated_at, :datetime
|
|
t.column :updated_on, :datetime
|
|
end
|
|
|
|
create_table :parrots_pirates, id: false, force: true do |t|
|
|
t.column :parrot_id, :integer
|
|
t.column :pirate_id, :integer
|
|
end
|
|
|
|
create_table :parrots_treasures, id: false, force: true do |t|
|
|
t.column :parrot_id, :integer
|
|
t.column :treasure_id, :integer
|
|
end
|
|
|
|
create_table :people, force: true do |t|
|
|
t.string :first_name, null: false
|
|
t.references :primary_contact
|
|
t.string :gender, limit: 1
|
|
t.references :number1_fan
|
|
t.integer :lock_version, null: false, default: 0
|
|
t.string :comments
|
|
t.integer :followers_count, default: 0
|
|
t.integer :friends_too_count, default: 0
|
|
t.references :best_friend
|
|
t.references :best_friend_of
|
|
t.integer :insures, null: false, default: 0
|
|
t.timestamp :born_at
|
|
t.timestamps null: false
|
|
end
|
|
|
|
create_table :peoples_treasures, id: false, force: true do |t|
|
|
t.column :rich_person_id, :integer
|
|
t.column :treasure_id, :integer
|
|
end
|
|
|
|
create_table :personal_legacy_things, force: true do |t|
|
|
t.integer :tps_report_number
|
|
t.integer :person_id
|
|
t.integer :version, null: false, default: 0
|
|
end
|
|
|
|
create_table :pets, primary_key: :pet_id, force: true do |t|
|
|
t.string :name
|
|
t.integer :owner_id, :integer
|
|
t.timestamps null: false
|
|
end
|
|
|
|
create_table :pirates, force: true do |t|
|
|
t.column :catchphrase, :string
|
|
t.column :parrot_id, :integer
|
|
t.integer :non_validated_parrot_id
|
|
t.column :created_on, :datetime
|
|
t.column :updated_on, :datetime
|
|
end
|
|
|
|
create_table :posts, force: true do |t|
|
|
t.integer :author_id
|
|
t.string :title, null: false
|
|
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
|
|
# Oracle SELECT WHERE clause which causes many unit test failures
|
|
if current_adapter?(:OracleAdapter)
|
|
t.string :body, null: false, limit: 4000
|
|
else
|
|
t.text :body, null: false
|
|
end
|
|
t.string :type
|
|
t.integer :comments_count, default: 0
|
|
t.integer :taggings_with_delete_all_count, default: 0
|
|
t.integer :taggings_with_destroy_count, default: 0
|
|
t.integer :tags_count, default: 0
|
|
t.integer :tags_with_destroy_count, default: 0
|
|
t.integer :tags_with_nullify_count, default: 0
|
|
end
|
|
|
|
create_table :serialized_posts, force: true do |t|
|
|
t.integer :author_id
|
|
t.string :title, null: false
|
|
end
|
|
|
|
create_table :images, force: true do |t|
|
|
t.integer :imageable_identifier
|
|
t.string :imageable_class
|
|
end
|
|
|
|
create_table :price_estimates, force: true do |t|
|
|
t.string :estimate_of_type
|
|
t.integer :estimate_of_id
|
|
t.integer :price
|
|
end
|
|
|
|
create_table :products, force: true do |t|
|
|
t.references :collection
|
|
t.references :type
|
|
t.string :name
|
|
end
|
|
|
|
create_table :product_types, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :projects, force: true do |t|
|
|
t.string :name
|
|
t.string :type
|
|
end
|
|
|
|
create_table :randomly_named_table1, force: true do |t|
|
|
t.string :some_attribute
|
|
t.integer :another_attribute
|
|
end
|
|
|
|
create_table :randomly_named_table2, force: true do |t|
|
|
t.string :some_attribute
|
|
t.integer :another_attribute
|
|
end
|
|
|
|
create_table :randomly_named_table3, force: true do |t|
|
|
t.string :some_attribute
|
|
t.integer :another_attribute
|
|
end
|
|
|
|
create_table :ratings, force: true do |t|
|
|
t.integer :comment_id
|
|
t.integer :value
|
|
end
|
|
|
|
create_table :readers, force: true do |t|
|
|
t.integer :post_id, null: false
|
|
t.integer :person_id, null: false
|
|
t.boolean :skimmer, default: false
|
|
t.integer :first_post_id
|
|
end
|
|
|
|
create_table :references, force: true do |t|
|
|
t.integer :person_id
|
|
t.integer :job_id
|
|
t.boolean :favourite
|
|
t.integer :lock_version, default: 0
|
|
end
|
|
|
|
create_table :shape_expressions, force: true do |t|
|
|
t.string :paint_type
|
|
t.integer :paint_id
|
|
t.string :shape_type
|
|
t.integer :shape_id
|
|
end
|
|
|
|
create_table :ships, force: true do |t|
|
|
t.string :name
|
|
t.integer :pirate_id
|
|
t.integer :update_only_pirate_id
|
|
t.datetime :created_at
|
|
t.datetime :created_on
|
|
t.datetime :updated_at
|
|
t.datetime :updated_on
|
|
end
|
|
|
|
create_table :ship_parts, force: true do |t|
|
|
t.string :name
|
|
t.integer :ship_id
|
|
t.datetime :updated_at
|
|
end
|
|
|
|
create_table :prisoners, force: true do |t|
|
|
t.belongs_to :ship
|
|
end
|
|
|
|
create_table :speedometers, force: true, id: false do |t|
|
|
t.string :speedometer_id
|
|
t.string :name
|
|
t.string :dashboard_id
|
|
end
|
|
|
|
create_table :sponsors, force: true do |t|
|
|
t.integer :club_id
|
|
t.integer :sponsorable_id
|
|
t.string :sponsorable_type
|
|
end
|
|
|
|
create_table :string_key_objects, id: false, primary_key: :id, force: true do |t|
|
|
t.string :id
|
|
t.string :name
|
|
t.integer :lock_version, null: false, default: 0
|
|
end
|
|
|
|
create_table :students, force: true do |t|
|
|
t.string :name
|
|
t.boolean :active
|
|
t.integer :college_id
|
|
end
|
|
|
|
create_table :subscribers, force: true, id: false do |t|
|
|
t.string :nick, null: false
|
|
t.string :name
|
|
t.column :books_count, :integer, null: false, default: 0
|
|
end
|
|
add_index :subscribers, :nick, unique: true
|
|
|
|
create_table :subscriptions, force: true do |t|
|
|
t.string :subscriber_id
|
|
t.integer :book_id
|
|
end
|
|
|
|
create_table :tags, force: true do |t|
|
|
t.column :name, :string
|
|
t.column :taggings_count, :integer, default: 0
|
|
end
|
|
|
|
create_table :taggings, force: true do |t|
|
|
t.column :tag_id, :integer
|
|
t.column :super_tag_id, :integer
|
|
t.column :taggable_type, :string
|
|
t.column :taggable_id, :integer
|
|
t.string :comment
|
|
end
|
|
|
|
create_table :tasks, force: true do |t|
|
|
t.datetime :starting
|
|
t.datetime :ending
|
|
end
|
|
|
|
create_table :topics, force: true do |t|
|
|
t.string :title, limit: 250
|
|
t.string :author_name
|
|
t.string :author_email_address
|
|
if mysql_56?
|
|
t.datetime :written_on, precision: 6
|
|
else
|
|
t.datetime :written_on
|
|
end
|
|
t.time :bonus_time
|
|
t.date :last_read
|
|
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
|
|
# Oracle SELECT WHERE clause which causes many unit test failures
|
|
if current_adapter?(:OracleAdapter)
|
|
t.string :content, limit: 4000
|
|
t.string :important, limit: 4000
|
|
else
|
|
t.text :content
|
|
t.text :important
|
|
end
|
|
t.boolean :approved, default: true
|
|
t.integer :replies_count, default: 0
|
|
t.integer :unique_replies_count, default: 0
|
|
t.integer :parent_id
|
|
t.string :parent_title
|
|
t.string :type
|
|
t.string :group
|
|
t.timestamps null: true
|
|
end
|
|
|
|
create_table :toys, primary_key: :toy_id, force: true do |t|
|
|
t.string :name
|
|
t.integer :pet_id, :integer
|
|
t.timestamps null: false
|
|
end
|
|
|
|
create_table :traffic_lights, force: true do |t|
|
|
t.string :location
|
|
t.string :state
|
|
t.text :long_state, null: false
|
|
t.datetime :created_at
|
|
t.datetime :updated_at
|
|
end
|
|
|
|
create_table :treasures, force: true do |t|
|
|
t.column :name, :string
|
|
t.column :type, :string
|
|
t.column :looter_id, :integer
|
|
t.column :looter_type, :string
|
|
t.belongs_to :ship
|
|
end
|
|
|
|
create_table :tyres, force: true do |t|
|
|
t.integer :car_id
|
|
end
|
|
|
|
create_table :variants, force: true do |t|
|
|
t.references :product
|
|
t.string :name
|
|
end
|
|
|
|
create_table :vertices, force: true do |t|
|
|
t.column :label, :string
|
|
end
|
|
|
|
create_table 'warehouse-things', force: true do |t|
|
|
t.integer :value
|
|
end
|
|
|
|
[:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
|
|
create_table(t, force: true) { }
|
|
end
|
|
|
|
# NOTE - the following 4 tables are used by models that have :inverse_of options on the associations
|
|
create_table :men, force: true do |t|
|
|
t.string :name
|
|
end
|
|
|
|
create_table :faces, force: true do |t|
|
|
t.string :description
|
|
t.integer :man_id
|
|
t.integer :polymorphic_man_id
|
|
t.string :polymorphic_man_type
|
|
t.integer :poly_man_without_inverse_id
|
|
t.string :poly_man_without_inverse_type
|
|
t.integer :horrible_polymorphic_man_id
|
|
t.string :horrible_polymorphic_man_type
|
|
end
|
|
|
|
create_table :interests, force: true do |t|
|
|
t.string :topic
|
|
t.integer :man_id
|
|
t.integer :polymorphic_man_id
|
|
t.string :polymorphic_man_type
|
|
t.integer :zine_id
|
|
end
|
|
|
|
create_table :wheels, force: true do |t|
|
|
t.references :wheelable, polymorphic: true
|
|
end
|
|
|
|
create_table :zines, force: true do |t|
|
|
t.string :title
|
|
end
|
|
|
|
create_table :countries, force: true, id: false, primary_key: 'country_id' do |t|
|
|
t.string :country_id
|
|
t.string :name
|
|
end
|
|
create_table :treaties, force: true, id: false, primary_key: 'treaty_id' do |t|
|
|
t.string :treaty_id
|
|
t.string :name
|
|
end
|
|
create_table :countries_treaties, force: true, id: false do |t|
|
|
t.string :country_id, null: false
|
|
t.string :treaty_id, null: false
|
|
end
|
|
|
|
create_table :liquid, force: true do |t|
|
|
t.string :name
|
|
end
|
|
create_table :molecules, force: true do |t|
|
|
t.integer :liquid_id
|
|
t.string :name
|
|
end
|
|
create_table :electrons, force: true do |t|
|
|
t.integer :molecule_id
|
|
t.string :name
|
|
end
|
|
create_table :weirds, force: true do |t|
|
|
t.string 'a$b'
|
|
t.string 'なまえ'
|
|
t.string 'from'
|
|
end
|
|
|
|
create_table :nodes, force: true do |t|
|
|
t.integer :tree_id
|
|
t.integer :parent_id
|
|
t.string :name
|
|
t.datetime :updated_at
|
|
end
|
|
create_table :trees, force: true do |t|
|
|
t.string :name
|
|
t.datetime :updated_at
|
|
end
|
|
|
|
create_table :hotels, force: true do |t|
|
|
end
|
|
create_table :departments, force: true do |t|
|
|
t.integer :hotel_id
|
|
end
|
|
create_table :cake_designers, force: true do |t|
|
|
end
|
|
create_table :drink_designers, force: true do |t|
|
|
end
|
|
create_table :chefs, force: true do |t|
|
|
t.integer :employable_id
|
|
t.string :employable_type
|
|
t.integer :department_id
|
|
end
|
|
create_table :recipes, force: true do |t|
|
|
t.integer :chef_id
|
|
t.integer :hotel_id
|
|
end
|
|
|
|
create_table :records, force: true do |t|
|
|
end
|
|
|
|
except 'SQLite' do
|
|
# fk_test_has_fk should be before fk_test_has_pk
|
|
create_table :fk_test_has_fk, force: true do |t|
|
|
t.integer :fk_id, null: false
|
|
end
|
|
|
|
create_table :fk_test_has_pk, force: true, primary_key: "pk_id" do |t|
|
|
end
|
|
|
|
add_foreign_key :fk_test_has_fk, :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
|
|
add_foreign_key :lessons_students, :students
|
|
end
|
|
|
|
create_table :overloaded_types, force: true do |t|
|
|
t.float :overloaded_float, default: 500
|
|
t.float :unoverloaded_float
|
|
t.string :overloaded_string_with_limit, limit: 255
|
|
t.string :string_with_default, default: 'the original default'
|
|
end
|
|
|
|
create_table :users, force: true do |t|
|
|
t.string :token
|
|
t.string :auth_token
|
|
end
|
|
end
|
|
|
|
Course.connection.create_table :courses, force: true do |t|
|
|
t.column :name, :string, null: false
|
|
t.column :college_id, :integer
|
|
end
|
|
|
|
College.connection.create_table :colleges, force: true do |t|
|
|
t.column :name, :string, null: false
|
|
end
|