diff --git a/.github/workflows/check_docker_build.yml b/.github/workflows/check_docker_build.yml index fc57fa1306..8c8789d0ea 100644 --- a/.github/workflows/check_docker_build.yml +++ b/.github/workflows/check_docker_build.yml @@ -15,12 +15,12 @@ jobs: - name: Build image run: >- - docker-compose build + docker compose build - name: Start stack and wait for all healthy run: | - RESET_DATABASE=true docker-compose -f docker-compose.yml up & - while docker-compose ps -q | xargs docker inspect --format '{{ .State.Health.Status }}' | grep -v '^healthy$' ; do + RESET_DATABASE=true docker compose -f docker-compose.yml up & + while docker compose ps -q | xargs docker inspect --format '{{ .State.Health.Status }}' | grep -v '^healthy$' ; do sleep 30 echo "Waiting for healthy containers" done @@ -28,4 +28,4 @@ jobs: - name: Stop stack run: >- - docker-compose down + docker compose down diff --git a/.release-version b/.release-version index 9d68c6c43b..b1a8b7b864 100644 --- a/.release-version +++ b/.release-version @@ -1 +1 @@ -14.39.0 +14.40.0 diff --git a/Gemfile.lock b/Gemfile.lock index 6fe00f7f6e..55860b04a2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,7 +121,7 @@ GEM bootsnap (1.18.3) msgpack (~> 1.2) builder (3.3.0) - bullet (7.1.6) + bullet (7.2.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) bunny (2.22.0) @@ -279,7 +279,7 @@ GEM minitest-profiler (0.0.2) activesupport (>= 4.1.0) minitest (>= 5.3.3) - mocha (2.4.0) + mocha (2.4.5) ruby2_keywords (>= 0.0.5) msgpack (1.7.2) multi_json (1.15.0) @@ -387,7 +387,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rexml (3.3.1) + rexml (3.3.4) strscan roo (2.10.1) nokogiri (~> 1) @@ -560,7 +560,7 @@ GEM backports (>= 3.18) rainbow yard - zeitwerk (2.6.16) + zeitwerk (2.6.17) PLATFORMS arm64-darwin diff --git a/app/api/io/study.rb b/app/api/io/study.rb index b20376b88b..ff3165c4f4 100644 --- a/app/api/io/study.rb +++ b/app/api/io/study.rb @@ -26,6 +26,7 @@ class Io::Study < Core::Io::Base study_metadata.commercially_available => commercially_available study_metadata.data_release_study_type.name => data_release_sort_of_study study_metadata.data_release_strategy => data_release_strategy +study_metadata.contaminated_human_data_access_group => contaminated_human_data_access_group ' ) end diff --git a/app/models/api/study_io.rb b/app/models/api/study_io.rb index 1d21f3857e..84eda27ee3 100644 --- a/app/models/api/study_io.rb +++ b/app/models/api/study_io.rb @@ -99,5 +99,6 @@ def render_class map_attribute_to_json_attribute(:hmdmc_approval_number, 'hmdmc_number') map_attribute_to_json_attribute(:s3_email_list) map_attribute_to_json_attribute(:data_deletion_period) + map_attribute_to_json_attribute(:contaminated_human_data_access_group) end end diff --git a/app/models/request.rb b/app/models/request.rb index 527819e33d..b5e3cff493 100644 --- a/app/models/request.rb +++ b/app/models/request.rb @@ -563,6 +563,11 @@ def product_line def manifest_processed! end + def self.get_all_comments(request) + counts = Comment.counts_for_requests([request]) + counts[request.id] + end + private def calculate_next_request_type_id diff --git a/app/models/study.rb b/app/models/study.rb index 833c4ca71b..abfb87248f 100644 --- a/app/models/study.rb +++ b/app/models/study.rb @@ -256,6 +256,7 @@ class Study < ApplicationRecord # rubocop:todo Metrics/ClassLength # External Customers custom_attribute(:s3_email_list) custom_attribute(:data_deletion_period) + custom_attribute(:contaminated_human_data_access_group) REMAPPED_ATTRIBUTES = { diff --git a/app/views/requests/show.html.erb b/app/views/requests/show.html.erb index e13488be63..a16b61cb8d 100644 --- a/app/views/requests/show.html.erb +++ b/app/views/requests/show.html.erb @@ -1,7 +1,7 @@ <% add :about, "This page displays details of requests" %> <% add :menu, "View event history" => history_request_path(@request) -%> -<% add :menu, (pluralize @request.comments.size, "comment") => request_comments_path(@request) -%> +<% add :menu, (pluralize Request.get_all_comments(@request), "comment") => request_comments_path(@request) -%> <% if can?(:cancel, @request) && @request.try(:may_cancel_before_started?) %> <% add :menu, { "Cancel" => cancel_request_url(@request) }, { confirm: "Are you sure you want to cancel this request?" } -%> diff --git a/app/views/shared/_batch.html.erb b/app/views/shared/_batch.html.erb index 4148773978..250c2f16a2 100644 --- a/app/views/shared/_batch.html.erb +++ b/app/views/shared/_batch.html.erb @@ -55,8 +55,8 @@ <% end %> <%= request.state.humanize %> - - <%= link_to (pluralize request.comments.size, 'comment'), request_comments_url(request) %> + + <%= link_to (pluralize Request.get_all_comments(request), 'comment'), request_comments_url(request) %> <% end -%> diff --git a/app/views/shared/metadata/edit/_study.html.erb b/app/views/shared/metadata/edit/_study.html.erb index b5edae596b..4f16c90e52 100644 --- a/app/views/shared/metadata/edit/_study.html.erb +++ b/app/views/shared/metadata/edit/_study.html.erb @@ -89,6 +89,7 @@ <%= metadata_fields.text_field(:s3_email_list) %> <%= metadata_fields.select(:data_deletion_period, ['','3 months']) %> + <%= metadata_fields.text_field(:contaminated_human_data_access_group) %> <% metadata_fields.finalize_related_fields %> <% end %> diff --git a/app/views/shared/metadata/show/_study.html.erb b/app/views/shared/metadata/show/_study.html.erb index f3f61a1615..d6ebe29a7c 100644 --- a/app/views/shared/metadata/show/_study.html.erb +++ b/app/views/shared/metadata/show/_study.html.erb @@ -60,6 +60,7 @@ <% end %> <%= metadata_fields.plain_value(:dac_policy_title) %> <%= metadata_fields.plain_value(:dac_policy) %> + <%= metadata_fields.plain_value(:contaminated_human_data_access_group) %> <% end %> <% end %> <% end %> diff --git a/config/default_records/request_types/014_limber_scrna_core_cdna_prep_request_types.wip.yml b/config/default_records/request_types/014_limber_scrna_core_cdna_prep_request_types.wip.yml index 76d872940a..46b8baffc4 100644 --- a/config/default_records/request_types/014_limber_scrna_core_cdna_prep_request_types.wip.yml +++ b/config/default_records/request_types/014_limber_scrna_core_cdna_prep_request_types.wip.yml @@ -28,8 +28,8 @@ limber_scrna_core_cdna_prep_input: - LRC PBMC Pools Input library_types: - Chromium single cell GEM-X 5p v3 GE -limber_scrna_core_chromium_gem_x_5p_aggregation: - name: scRNA Core Chromium GEM-X 5p Aggregation +limber_scrna_core_aggregation: + name: scRNA Core Aggregation asset_type: Well order: 1 request_class_name: CustomerRequest diff --git a/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.wip.yml b/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.wip.yml index a310308ca0..e4fc108981 100644 --- a/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.wip.yml +++ b/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.wip.yml @@ -1,9 +1,9 @@ # Submission templates for the aggregation and library prep parts of the scRNA Core pipeline. --- -Limber-Htp - scRNA Core Chromium GEM-X 5p Aggregation: +Limber-Htp - scRNA Core Aggregation: submission_class_name: "LinearSubmission" related_records: - request_type_keys: ["limber_scrna_core_chromium_gem_x_5p_aggregation"] + request_type_keys: ["limber_scrna_core_aggregation"] product_line_name: Short Read product_catalogue_name: scRNA Core Limber-Htp - scRNA Core Library Prep: diff --git a/config/locales/metadata/en.yml b/config/locales/metadata/en.yml index e5d070778b..d9ca5560aa 100644 --- a/config/locales/metadata/en.yml +++ b/config/locales/metadata/en.yml @@ -508,6 +508,9 @@ en: data_deletion_period: label: Data deletion period + contaminated_human_data_access_group: + label: Contaminated Human Data Access Group + help: "Allows specified Unix groups and users access to data segregated from the main data product, which is potentially contaminated with human data. This access is typically rarely used and is primarily for validating the separation process, as we may not have the ethical or legal clearance." project: metadata: project_manager_id: diff --git a/db/migrate/20240730085322_add_contaminated_human_data_access_group_to_study_metadata.rb b/db/migrate/20240730085322_add_contaminated_human_data_access_group_to_study_metadata.rb new file mode 100644 index 0000000000..9a0dedd025 --- /dev/null +++ b/db/migrate/20240730085322_add_contaminated_human_data_access_group_to_study_metadata.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true +class AddContaminatedHumanDataAccessGroupToStudyMetadata < ActiveRecord::Migration[6.1] + def change + add_column :study_metadata, :contaminated_human_data_access_group, :string, default: nil + end +end diff --git a/db/schema.rb b/db/schema.rb index 2c2e18945d..48632176aa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,9 +10,9 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2024_07_01_102617) do +ActiveRecord::Schema.define(version: 2024_07_30_085322) do - create_table "aliquot_indices", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "aliquot_indices", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "aliquot_id", null: false t.integer "lane_id", null: false t.integer "aliquot_index", null: false @@ -22,7 +22,7 @@ t.index ["lane_id", "aliquot_index"], name: "index_aliquot_indices_on_lane_id_and_aliquot_index", unique: true end - create_table "aliquots", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "aliquots", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "receptacle_id", null: false t.integer "study_id" t.integer "project_id" @@ -50,7 +50,7 @@ t.index ["tag_id"], name: "tag_id_idx" end - create_table "api_applications", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "api_applications", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.string "key", null: false t.string "contact", null: false @@ -59,7 +59,7 @@ t.index ["key"], name: "index_api_applications_on_key" end - create_table "asset_audits", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_audits", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "message" t.string "key" t.string "created_by" @@ -71,17 +71,17 @@ t.index ["asset_id"], name: "index_asset_audits_on_asset_id" end - create_table "asset_barcodes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_barcodes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| end - create_table "asset_creation_parents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_creation_parents", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "asset_creation_id" t.integer "parent_id" t.datetime "created_at" t.datetime "updated_at" end - create_table "asset_creations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_creations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id" t.integer "parent_id" t.integer "child_purpose_id" @@ -91,7 +91,7 @@ t.string "type", null: false end - create_table "asset_group_assets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_group_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "asset_id" t.integer "asset_group_id" t.datetime "created_at" @@ -100,7 +100,7 @@ t.index ["asset_id"], name: "index_asset_group_assets_on_asset_id" end - create_table "asset_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_groups", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.integer "user_id" t.integer "study_id" @@ -108,7 +108,7 @@ t.datetime "updated_at" end - create_table "asset_links", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_links", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "ancestor_id" t.integer "descendant_id" t.boolean "direct" @@ -119,7 +119,7 @@ t.index ["descendant_id", "direct"], name: "index_asset_links_on_descendant_id_and_direct" end - create_table "asset_shapes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "asset_shapes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.integer "horizontal_ratio", null: false t.integer "vertical_ratio", null: false @@ -128,7 +128,7 @@ t.datetime "updated_at" end - create_table "assets_deprecated", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| + create_table "assets_deprecated", id: :integer, charset: "latin1", force: :cascade do |t| t.string "name" t.string "value" t.string "sti_type", limit: 50 @@ -160,7 +160,7 @@ t.index ["updated_at"], name: "index_assets_deprecated_on_updated_at" end - create_table "bait_libraries", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "bait_libraries", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "bait_library_supplier_id" t.string "name", null: false t.string "supplier_identifier" @@ -172,7 +172,7 @@ t.index ["bait_library_supplier_id", "name"], name: "bait_library_names_are_unique_within_a_supplier", unique: true end - create_table "bait_library_layouts", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "bait_library_layouts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id" t.integer "plate_id", null: false t.string "layout", limit: 1024 @@ -181,14 +181,14 @@ t.index ["plate_id"], name: "bait_libraries_are_laid_out_on_a_plate_once", unique: true end - create_table "bait_library_suppliers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "bait_library_suppliers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at" t.datetime "updated_at" t.boolean "visible", default: true, null: false end - create_table "bait_library_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "bait_library_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at" t.datetime "updated_at" @@ -197,12 +197,12 @@ t.index ["name"], name: "index_bait_library_types_on_name", unique: true end - create_table "barcode_prefixes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "barcode_prefixes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "prefix", limit: 3 t.index ["prefix"], name: "index_barcode_prefixes_on_prefix" end - create_table "barcode_printer_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "barcode_printer_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.integer "printer_type_id" t.string "type" @@ -213,7 +213,7 @@ t.index ["type"], name: "index_barcode_printer_types_on_type" end - create_table "barcode_printers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "barcode_printers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.boolean "active" t.datetime "created_at" @@ -223,7 +223,7 @@ t.integer "printer_type", default: 1 end - create_table "barcodes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "barcodes", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "asset_id", null: false t.string "barcode", null: false t.integer "format", null: false @@ -233,7 +233,7 @@ t.index ["barcode"], name: "index_barcodes_on_barcode" end - create_table "batch_requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "batch_requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "batch_id", null: false t.integer "request_id", null: false t.integer "position" @@ -243,7 +243,7 @@ t.index ["request_id"], name: "request_id", unique: true end - create_table "batches", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "batches", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "item_limit" t.datetime "created_at" t.integer "user_id" @@ -259,7 +259,7 @@ t.index ["updated_at"], name: "index_batches_on_updated_at" end - create_table "bkp_lab_events", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "bkp_lab_events", id: false, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "id", default: 0, null: false t.text "description", size: :medium t.text "descriptors", size: :medium @@ -275,7 +275,7 @@ t.integer "batch_id" end - create_table "broadcast_events", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "broadcast_events", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "sti_type" t.string "seed_type" t.integer "seed_id" @@ -285,19 +285,19 @@ t.datetime "updated_at" end - create_table "budget_divisions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "budget_divisions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" end - create_table "bulk_transfers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "bulk_transfers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.integer "user_id" end - create_table "comments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "comments", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "title" t.string "commentable_type", limit: 50 t.integer "user_id" @@ -308,14 +308,14 @@ t.index ["commentable_id", "commentable_type"], name: "index_comments_on_commentable_id_and_commentable_type" end - create_table "container_associations_deprecated", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| + create_table "container_associations_deprecated", id: :integer, charset: "latin1", force: :cascade do |t| t.integer "container_id", null: false t.integer "content_id", null: false t.index ["container_id"], name: "index_container_associations_deprecated_on_container_id" t.index ["content_id"], name: "container_association_content_is_unique", unique: true end - create_table "controls", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "controls", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.integer "item_id" t.integer "pipeline_id" @@ -323,7 +323,7 @@ t.datetime "updated_at" end - create_table "custom_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "custom_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "key" t.string "value" t.integer "custom_metadatum_collection_id" @@ -333,7 +333,7 @@ t.index ["key", "value"], name: "index_custom_metadata_on_key_and_value" end - create_table "custom_metadatum_collections", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "custom_metadatum_collections", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id" t.integer "asset_id" t.datetime "created_at" @@ -341,7 +341,7 @@ t.index ["asset_id"], name: "index_custom_metadatum_collections_on_asset_id" end - create_table "custom_texts", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "custom_texts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "identifier" t.integer "differential" t.string "content_type" @@ -350,7 +350,7 @@ t.datetime "updated_at" end - create_table "data_release_study_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "data_release_study_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" @@ -359,7 +359,7 @@ t.boolean "is_assay_type", default: false end - create_table "db_files", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "db_files", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.binary "data", size: :long t.integer "owner_id" t.string "owner_type", limit: 25, default: "Document", null: false @@ -367,7 +367,7 @@ t.index ["owner_type", "owner_id"], name: "index_db_files_on_owner_type_and_owner_id" end - create_table "delayed_jobs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "delayed_jobs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "priority", default: 0 t.integer "attempts", default: 0 t.text "handler", size: :medium @@ -381,7 +381,7 @@ t.string "queue" end - create_table "descriptors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "descriptors", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "value" t.text "selection", size: :medium @@ -393,7 +393,7 @@ t.index ["task_id"], name: "index_descriptors_on_task_id" end - create_table "documents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "documents", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "documentable_id" t.integer "size" t.string "content_type" @@ -409,14 +409,14 @@ t.index ["documentable_type", "documentable_id"], name: "index_documents_on_documentable_type_and_documentable_id" end - create_table "equipment", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "equipment", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "equipment_type" t.string "prefix", limit: 2, null: false t.string "ean13_barcode", limit: 13 end - create_table "events", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "events", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "eventful_id" t.string "eventful_type", limit: 50 t.string "message" @@ -435,14 +435,14 @@ t.index ["eventful_type"], name: "index_events_on_eventful_type" end - create_table "extended_validators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "extended_validators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "behaviour", null: false t.text "options", size: :medium t.datetime "created_at" t.datetime "updated_at" end - create_table "external_properties", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "external_properties", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "propertied_id" t.string "propertied_type", limit: 50 t.string "key", limit: 50 @@ -452,7 +452,7 @@ t.index ["propertied_id", "propertied_type", "key"], name: "ep_pi_pt_key" end - create_table "extraction_attributes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "extraction_attributes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "target_id" t.string "created_by" t.text "attributes_update", size: :long @@ -460,13 +460,13 @@ t.datetime "updated_at", null: false end - create_table "faculty_sponsors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "faculty_sponsors", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" end - create_table "failures", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "failures", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "failable_id" t.string "failable_type", limit: 50 t.text "reason", size: :medium @@ -477,14 +477,14 @@ t.index ["failable_id"], name: "index_failures_on_failable_id" end - create_table "flipper_features", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "flipper_features", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "key", null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["key"], name: "index_flipper_features_on_key", unique: true end - create_table "flipper_gates", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "flipper_gates", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "feature_key", null: false t.string "key", null: false t.string "value" @@ -493,14 +493,14 @@ t.index ["feature_key", "key", "value"], name: "index_flipper_gates_on_feature_key_and_key_and_value", unique: true end - create_table "flowcell_types", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "flowcell_types", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "name" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["name"], name: "index_flowcell_types_on_name", unique: true end - create_table "flowcell_types_request_types", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "flowcell_types_request_types", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.bigint "flowcell_type_id", null: false t.integer "request_type_id", null: false t.datetime "created_at", precision: 6, null: false @@ -509,7 +509,7 @@ t.index ["request_type_id"], name: "index_flowcell_types_request_types_on_request_type_id" end - create_table "identifiers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "identifiers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "identifiable_id" t.string "identifiable_type", limit: 50 t.string "resource_name" @@ -522,13 +522,13 @@ t.index ["resource_name"], name: "index_identifiers_on_resource_name" end - create_table "implements", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "implements", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "barcode" t.string "equipment_type" end - create_table "isndc_countries", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "isndc_countries", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.integer "sort_priority", default: 0, null: false t.integer "validation_state", default: 0, null: false @@ -539,7 +539,7 @@ t.index ["validation_state"], name: "index_isndc_countries_on_validation_state" end - create_table "items", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.string "name" @@ -555,7 +555,7 @@ t.index ["version"], name: "index_items_on_version" end - create_table "lab_events", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "lab_events", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "description" t.text "descriptors", size: :medium t.integer "eventful_id" @@ -571,7 +571,7 @@ t.index ["eventful_type"], name: "index_lab_events_on_eventful_type" end - create_table "labware", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "labware", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "name" t.string "sti_type", limit: 50, default: "Labware", null: false t.integer "size" @@ -589,21 +589,21 @@ t.index ["updated_at"], name: "index_labware_on_updated_at" end - create_table "lane_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "lane_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "lane_id" t.string "release_reason" t.datetime "created_at" t.datetime "updated_at" end - create_table "library_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "library_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at" t.datetime "updated_at" t.index ["name"], name: "index_library_types_on_name", unique: true end - create_table "library_types_request_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "library_types_request_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_type_id", null: false t.integer "library_type_id", null: false t.boolean "is_default", default: false @@ -613,7 +613,7 @@ t.index ["request_type_id"], name: "fk_library_types_request_types_to_request_types" end - create_table "location_reports", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "location_reports", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.bigint "user_id", null: false t.string "name", null: false t.integer "report_type", null: false @@ -631,7 +631,7 @@ t.index ["user_id"], name: "index_location_reports_on_user_id" end - create_table "lot_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "lot_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.string "template_class", null: false t.integer "target_purpose_id", null: false @@ -640,7 +640,7 @@ t.index ["target_purpose_id"], name: "fk_lot_types_to_plate_purposes" end - create_table "lots", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "lots", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "lot_number", null: false t.integer "lot_type_id", null: false t.integer "template_id", null: false @@ -653,7 +653,7 @@ t.index ["lot_type_id"], name: "fk_lots_to_lot_types" end - create_table "maps", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "maps", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "description", limit: 4 t.integer "asset_size" t.integer "location_id" @@ -664,7 +664,7 @@ t.index ["description"], name: "index_maps_on_description" end - create_table "messenger_creators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "messenger_creators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "template", null: false t.string "root", null: false t.integer "purpose_id", null: false @@ -674,7 +674,7 @@ t.index ["purpose_id"], name: "fk_messenger_creators_to_plate_purposes" end - create_table "messengers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "messengers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "target_id" t.string "target_type" t.string "root", null: false @@ -684,13 +684,13 @@ t.index ["target_id", "target_type"], name: "index_messengers_on_target_id_and_target_type" end - create_table "order_roles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "order_roles", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "role" t.datetime "created_at" t.datetime "updated_at" end - create_table "orders", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "orders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "study_id" t.datetime "created_at" t.datetime "updated_at" @@ -714,7 +714,7 @@ t.index ["submission_id"], name: "index_orders_on_submission_id" end - create_table "pac_bio_library_tube_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pac_bio_library_tube_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "smrt_cells_available" t.string "prep_kit_barcode" t.string "binding_kit_barcode" @@ -726,7 +726,7 @@ t.index ["pac_bio_library_tube_id"], name: "index_pac_bio_library_tube_metadata_on_pac_bio_library_tube_id" end - create_table "permissions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "role_name" t.string "name" t.string "permissable_type", limit: 50 @@ -735,7 +735,7 @@ t.datetime "updated_at" end - create_table "pick_lists", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pick_lists", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "state", default: 0, null: false t.integer "submission_id", null: false t.datetime "created_at", null: false @@ -743,14 +743,14 @@ t.index ["submission_id"], name: "index_pick_lists_on_submission_id" end - create_table "pipeline_request_information_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pipeline_request_information_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "pipeline_id" t.integer "request_information_type_id" t.datetime "created_at" t.datetime "updated_at" end - create_table "pipelines", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pipelines", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.boolean "active", default: true t.datetime "created_at" @@ -767,14 +767,14 @@ t.string "validator_class_name" end - create_table "pipelines_request_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pipelines_request_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "pipeline_id", null: false t.integer "request_type_id", null: false t.index ["pipeline_id"], name: "fk_pipelines_request_types_to_pipelines" t.index ["request_type_id"], name: "fk_pipelines_request_types_to_request_types" end - create_table "plate_conversions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_conversions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "target_id", null: false t.integer "purpose_id", null: false t.integer "user_id", null: false @@ -783,21 +783,21 @@ t.integer "parent_id" end - create_table "plate_creator_parent_purposes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_creator_parent_purposes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "plate_creator_id", null: false t.integer "plate_purpose_id", null: false t.datetime "created_at" t.datetime "updated_at" end - create_table "plate_creator_purposes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_creator_purposes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "plate_creator_id", null: false t.integer "plate_purpose_id", null: false t.datetime "created_at" t.datetime "updated_at" end - create_table "plate_creators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_creators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at" t.datetime "updated_at" @@ -805,7 +805,7 @@ t.index ["name"], name: "index_plate_creators_on_name", unique: true end - create_table "plate_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "plate_id" t.string "infinium_barcode_bkp" t.datetime "created_at" @@ -816,7 +816,7 @@ t.index ["plate_id"], name: "index_plate_metadata_on_plate_id" end - create_table "plate_owners", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_owners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id", null: false t.integer "plate_id", null: false t.datetime "created_at" @@ -825,12 +825,12 @@ t.string "eventable_type", null: false end - create_table "plate_purpose_relationships", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_purpose_relationships", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "parent_id" t.integer "child_id" end - create_table "plate_purposes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_purposes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at" t.datetime "updated_at" @@ -851,14 +851,14 @@ t.index ["type"], name: "index_plate_purposes_on_type" end - create_table "plate_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.integer "maximum_volume" t.datetime "created_at", null: false t.datetime "updated_at", null: false end - create_table "plate_volumes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "plate_volumes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "barcode" t.string "uploaded_file_name" t.string "state" @@ -867,7 +867,7 @@ t.index ["uploaded_file_name"], name: "index_plate_volumes_on_uploaded_file_name" end - create_table "poly_metadata", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "poly_metadata", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "key", null: false t.string "value", null: false t.string "metadatable_type", null: false @@ -877,23 +877,23 @@ t.index ["metadatable_type", "metadatable_id"], name: "index_poly_metadata_on_metadatable_type_and_metadatable_id" end - create_table "pooling_methods", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pooling_methods", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "pooling_behaviour", limit: 50, null: false t.text "pooling_options", size: :medium end - create_table "pre_capture_pool_pooled_requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pre_capture_pool_pooled_requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "pre_capture_pool_id", null: false t.integer "request_id", null: false t.index ["request_id"], name: "request_id_should_be_unique", unique: true end - create_table "pre_capture_pools", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "pre_capture_pools", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" end - create_table "primer_panels", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "primer_panels", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.integer "snp_count", null: false t.datetime "created_at", null: false @@ -901,14 +901,14 @@ t.text "programs", size: :medium end - create_table "product_catalogues", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "product_catalogues", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.string "selection_behaviour", default: "SingleProduct", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false end - create_table "product_criteria", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "product_criteria", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "product_id", null: false t.string "stage", null: false t.string "behaviour", default: "Basic", null: false @@ -920,11 +920,11 @@ t.index ["product_id", "stage", "version"], name: "index_product_criteria_on_product_id_and_stage_and_version", unique: true end - create_table "product_lines", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "product_lines", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false end - create_table "product_product_catalogues", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "product_product_catalogues", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "product_id", null: false t.integer "product_catalogue_id", null: false t.string "selection_criterion" @@ -934,26 +934,26 @@ t.index ["product_id"], name: "fk_product_product_catalogues_to_products" end - create_table "products", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "products", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.datetime "deprecated_at" end - create_table "programs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "programs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at", null: false t.datetime "updated_at", null: false end - create_table "project_managers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "project_managers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" end - create_table "project_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "project_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "project_id" t.string "project_cost_code" t.string "funding_comments" @@ -969,7 +969,7 @@ t.index ["project_id"], name: "index_project_metadata_on_project_id" end - create_table "projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "projects", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.boolean "enforce_quotas", default: true t.boolean "approved", default: false @@ -981,13 +981,13 @@ t.index ["state"], name: "index_projects_on_state" end - create_table "qc_assays", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_assays", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "lot_number" end - create_table "qc_decision_qcables", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_decision_qcables", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "qc_decision_id", null: false t.integer "qcable_id", null: false t.string "decision", null: false @@ -995,14 +995,14 @@ t.datetime "updated_at" end - create_table "qc_decisions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_decisions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "lot_id", null: false t.integer "user_id", null: false t.datetime "created_at" t.datetime "updated_at" end - create_table "qc_files", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_files", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "asset_id" t.integer "size" t.string "content_type" @@ -1012,7 +1012,7 @@ t.index ["asset_id"], name: "fk_rails_31d6eeacb9" end - create_table "qc_metric_requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_metric_requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "qc_metric_id", null: false t.integer "request_id", null: false t.datetime "created_at", null: false @@ -1021,7 +1021,7 @@ t.index ["request_id"], name: "fk_qc_metric_requests_to_requests" end - create_table "qc_metrics", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_metrics", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "qc_report_id", null: false t.integer "asset_id", null: false t.text "metrics", size: :medium @@ -1033,7 +1033,7 @@ t.index ["qc_report_id"], name: "fk_qc_metrics_to_qc_reports" end - create_table "qc_reports", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "report_identifier", null: false t.integer "study_id", null: false t.integer "product_criteria_id", null: false @@ -1047,7 +1047,7 @@ t.index ["study_id"], name: "fk_qc_reports_to_studies" end - create_table "qc_results", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qc_results", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.bigint "asset_id" t.string "key" t.string "value" @@ -1062,7 +1062,7 @@ t.index ["qc_assay_id"], name: "index_qc_results_on_qc_assay_id" end - create_table "qcable_creators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qcable_creators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "lot_id", null: false t.integer "user_id", null: false t.datetime "created_at" @@ -1070,7 +1070,7 @@ t.index ["user_id"], name: "fk_qcable_creators_to_users" end - create_table "qcables", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "qcables", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "lot_id", null: false t.integer "asset_id", null: false t.string "state", null: false @@ -1081,7 +1081,7 @@ t.index ["lot_id"], name: "index_lot_id" end - create_table "racked_tubes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "racked_tubes", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.bigint "tube_rack_id" t.bigint "tube_id" t.string "coordinate" @@ -1091,7 +1091,7 @@ t.index ["tube_rack_id"], name: "index_racked_tubes_on_tube_rack_id" end - create_table "receptacles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t| + create_table "receptacles", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "sti_type", limit: 50, default: "Receptacle", null: false t.string "qc_state", limit: 20 t.boolean "resource" @@ -1113,13 +1113,13 @@ t.index ["updated_at"], name: "index_receptacles_on_updated_at" end - create_table "reference_genomes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "reference_genomes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" end - create_table "request_events", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_events", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_id", null: false t.string "event_name", null: false t.string "from_state" @@ -1129,7 +1129,7 @@ t.index ["request_id", "current_to"], name: "index_request_events_on_request_id_and_current_to" end - create_table "request_information_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_information_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "key", limit: 50 t.string "label" @@ -1140,7 +1140,7 @@ t.boolean "hide_in_inbox" end - create_table "request_informations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_informations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_id" t.integer "request_information_type_id" t.string "value" @@ -1148,7 +1148,7 @@ t.datetime "updated_at" end - create_table "request_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_id" t.string "name" t.string "tag" @@ -1177,13 +1177,13 @@ t.index ["request_id"], name: "index_request_metadata_on_request_id" end - create_table "request_type_plate_purposes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_type_plate_purposes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_type_id", null: false t.integer "plate_purpose_id", null: false t.index ["request_type_id", "plate_purpose_id"], name: "plate_purposes_are_unique_within_request_type", unique: true end - create_table "request_type_validators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_type_validators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_type_id", null: false t.string "request_option", null: false t.text "valid_options", size: :medium, null: false @@ -1193,7 +1193,7 @@ t.index ["key"], name: "index_request_type_validators_on_key", unique: true end - create_table "request_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "key", limit: 100 t.string "name" t.datetime "created_at" @@ -1218,7 +1218,7 @@ t.index ["billing_product_catalogue_id"], name: "index_request_types_on_billing_product_catalogue_id" end - create_table "request_types_extended_validators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "request_types_extended_validators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "request_type_id", null: false t.integer "extended_validator_id", null: false t.datetime "created_at" @@ -1227,7 +1227,7 @@ t.index ["request_type_id"], name: "fk_request_types_extended_validators_to_request_types" end - create_table "requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "initial_study_id" t.datetime "created_at" t.datetime "updated_at" @@ -1259,7 +1259,7 @@ t.index ["work_order_id"], name: "index_requests_on_work_order_id" end - create_table "robot_properties", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "robot_properties", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "value" t.string "key", limit: 50 @@ -1268,7 +1268,7 @@ t.datetime "updated_at" end - create_table "robots", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "robots", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "location" t.datetime "created_at" @@ -1276,7 +1276,7 @@ t.string "barcode" end - create_table "roles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "roles", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "authorizable_type", limit: 50 t.integer "authorizable_id" @@ -1287,7 +1287,7 @@ t.index ["name"], name: "index_roles_on_name" end - create_table "roles_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "roles_users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "role_id" t.integer "user_id" t.datetime "created_at", null: false @@ -1296,14 +1296,14 @@ t.index ["user_id"], name: "index_roles_users_on_user_id" end - create_table "sample_compounds_components", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "sample_compounds_components", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "compound_sample_id", null: false t.integer "component_sample_id", null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false end - create_table "sample_manifest_assets", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "sample_manifest_assets", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.bigint "sample_manifest_id" t.bigint "asset_id" t.string "sanger_sample_id" @@ -1314,7 +1314,7 @@ t.index ["sanger_sample_id"], name: "index_sample_manifest_assets_on_sanger_sample_id" end - create_table "sample_manifests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "sample_manifests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.integer "study_id" @@ -1335,7 +1335,7 @@ t.index ["supplier_id"], name: "index_sample_manifests_on_supplier_id" end - create_table "sample_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "sample_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "sample_id" t.string "organism" t.string "gc_content" @@ -1398,7 +1398,7 @@ t.index ["supplier_name"], name: "index_sample_metadata_on_supplier_name" end - create_table "sample_registrars", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "sample_registrars", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "study_id" t.integer "user_id" t.integer "sample_id" @@ -1406,7 +1406,7 @@ t.integer "asset_group_id" end - create_table "samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "samples", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.boolean "new_name_format", default: true t.datetime "created_at" @@ -1427,10 +1427,10 @@ t.index ["updated_at"], name: "index_samples_on_updated_at" end - create_table "sanger_sample_ids", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "sanger_sample_ids", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| end - create_table "searches", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "searches", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "type" t.datetime "created_at" @@ -1439,14 +1439,14 @@ t.text "default_parameters", size: :medium end - create_table "specific_tube_creation_purposes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "specific_tube_creation_purposes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "specific_tube_creation_id" t.integer "tube_purpose_id" t.datetime "created_at" t.datetime "updated_at" end - create_table "stamp_qcables", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "stamp_qcables", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "stamp_id", null: false t.integer "qcable_id", null: false t.string "bed", null: false @@ -1457,7 +1457,7 @@ t.index ["stamp_id"], name: "fk_stamp_qcables_to_stamps" end - create_table "stamps", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "stamps", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "lot_id", null: false t.integer "user_id", null: false t.integer "robot_id", null: false @@ -1469,7 +1469,7 @@ t.index ["user_id"], name: "fk_stamps_to_users" end - create_table "state_changes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "state_changes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id" t.integer "target_id" t.string "contents", limit: 4096 @@ -1480,7 +1480,7 @@ t.string "reason" end - create_table "studies", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "studies", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" @@ -1496,7 +1496,7 @@ t.index ["updated_at"], name: "index_studies_on_updated_at" end - create_table "study_metadata", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "study_metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "study_id" t.string "old_sac_sponsor" t.text "study_description", size: :medium @@ -1544,11 +1544,12 @@ t.integer "program_id" t.string "s3_email_list" t.string "data_deletion_period" + t.string "contaminated_human_data_access_group" t.index ["faculty_sponsor_id"], name: "index_study_metadata_on_faculty_sponsor_id" t.index ["study_id"], name: "index_study_metadata_on_study_id" end - create_table "study_reports", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "study_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "study_id" t.datetime "created_at" t.datetime "updated_at" @@ -1559,7 +1560,7 @@ t.index ["user_id"], name: "index_study_reports_on_user_id" end - create_table "study_samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "study_samples", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "study_id", null: false t.integer "sample_id", null: false t.datetime "created_at" @@ -1569,7 +1570,7 @@ t.index ["study_id"], name: "index_project_samples_on_project_id" end - create_table "study_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "study_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.boolean "valid_type" t.datetime "created_at" @@ -1577,7 +1578,7 @@ t.boolean "valid_for_creation", default: true, null: false end - create_table "subclass_attributes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "subclass_attributes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "value" t.integer "attributable_id" @@ -1587,7 +1588,7 @@ t.index ["attributable_id", "name"], name: "index_subclass_attributes_on_attributable_id_and_name" end - create_table "submission_templates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "submission_templates", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.string "submission_class_name" t.text "submission_parameters", size: :medium @@ -1601,7 +1602,7 @@ t.index ["product_catalogue_id"], name: "fk_submission_templates_to_product_catalogues" end - create_table "submissions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "submissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.string "state", limit: 20 @@ -1615,7 +1616,7 @@ t.index ["state"], name: "index_submissions_on_state" end - create_table "submitted_assets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "submitted_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "order_id" t.integer "asset_id" t.datetime "created_at" @@ -1623,7 +1624,7 @@ t.index ["asset_id"], name: "index_submitted_assets_on_asset_id" end - create_table "suppliers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "suppliers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" @@ -1637,7 +1638,7 @@ t.index ["name"], name: "index_suppliers_on_name" end - create_table "tag2_layout_template_submissions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag2_layout_template_submissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "submission_id", null: false t.integer "tag2_layout_template_id", null: false t.datetime "created_at" @@ -1646,14 +1647,14 @@ t.index ["tag2_layout_template_id"], name: "fk_tag2_layout_template_submissions_to_tag2_layout_templates" end - create_table "tag2_layout_templates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag2_layout_templates", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.integer "tag_id", null: false t.datetime "created_at" t.datetime "updated_at" end - create_table "tag2_layouts", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag2_layouts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "tag_id" t.integer "plate_id" t.integer "user_id" @@ -1663,13 +1664,13 @@ t.text "target_well_locations", size: :medium end - create_table "tag_group_adapter_types", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag_group_adapter_types", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at", null: false t.datetime "updated_at", null: false end - create_table "tag_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag_groups", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" @@ -1679,7 +1680,7 @@ t.index ["name"], name: "tag_groups_unique_name", unique: true end - create_table "tag_layout_template_submissions", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag_layout_template_submissions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "submission_id", null: false t.integer "tag_layout_template_id", null: false t.boolean "enforce_uniqueness" @@ -1690,7 +1691,7 @@ t.index ["tag_layout_template_id"], name: "index_tag_layout_template_submissions_on_tag_layout_template_id" end - create_table "tag_layout_templates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag_layout_templates", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "direction_algorithm" t.integer "tag_group_id" t.string "name" @@ -1702,7 +1703,7 @@ t.index ["tag2_group_id"], name: "fk_rails_1c2c01e708" end - create_table "tag_layouts", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tag_layouts", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "direction_algorithm" t.integer "tag_group_id" t.integer "plate_id" @@ -1716,7 +1717,7 @@ t.index ["tag2_group_id"], name: "fk_rails_d221e7c041" end - create_table "tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tags", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "oligo" t.integer "map_id" t.integer "tag_group_id" @@ -1726,7 +1727,7 @@ t.index ["tag_group_id"], name: "index_tags_on_tag_group_id" end - create_table "tasks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tasks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.integer "pipeline_workflow_id" t.integer "sorted" @@ -1743,7 +1744,7 @@ t.index ["sti_type"], name: "index_tasks_on_sti_type" end - create_table "transfer_request_collection_transfer_requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "transfer_request_collection_transfer_requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "transfer_request_collection_id" t.integer "transfer_request_id" t.datetime "created_at", null: false @@ -1752,14 +1753,14 @@ t.index ["transfer_request_id"], name: "fk_rails_67a3295574" end - create_table "transfer_request_collections", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "transfer_request_collections", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["user_id"], name: "fk_rails_e542f48171" end - create_table "transfer_requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "transfer_requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.string "state", limit: 20, default: "pending" @@ -1773,7 +1774,7 @@ t.index ["target_asset_id"], name: "index_requests_on_target_asset_id" end - create_table "transfer_templates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "transfer_templates", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.string "name" @@ -1781,7 +1782,7 @@ t.string "transfers", limit: 10240 end - create_table "transfers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "transfers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.string "sti_type" @@ -1793,14 +1794,14 @@ t.index ["source_id"], name: "source_id_idx" end - create_table "tube_creation_children", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tube_creation_children", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" t.integer "tube_creation_id", null: false t.integer "tube_id", null: false end - create_table "tube_rack_statuses", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "tube_rack_statuses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "barcode", null: false t.integer "status", null: false t.text "messages", size: :medium @@ -1809,7 +1810,7 @@ t.datetime "updated_at", null: false end - create_table "users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "login" t.string "email" t.string "crypted_password", limit: 40 @@ -1832,7 +1833,7 @@ t.index ["pipeline_administrator"], name: "index_users_on_pipeline_administrator" end - create_table "uuids", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t| + create_table "uuids", id: :integer, charset: "latin1", force: :cascade do |t| t.string "resource_type", limit: 128, null: false t.integer "resource_id", null: false t.string "external_id", limit: 36, null: false @@ -1840,7 +1841,7 @@ t.index ["resource_type", "resource_id"], name: "index_uuids_on_resource_type_and_resource_id" end - create_table "volume_updates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "volume_updates", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "target_id" t.string "created_by" t.float "volume_change" @@ -1848,7 +1849,7 @@ t.datetime "updated_at", null: false end - create_table "well_attributes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "well_attributes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "well_id" t.string "gel_pass", limit: 20 t.float "concentration" @@ -1871,20 +1872,20 @@ t.index ["well_id"], name: "index_well_attributes_on_well_id" end - create_table "well_links", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "well_links", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "target_well_id", null: false t.integer "source_well_id", null: false t.string "type", null: false t.index ["target_well_id"], name: "target_well_idx" end - create_table "well_to_tube_transfers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "well_to_tube_transfers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "transfer_id", null: false t.integer "destination_id", null: false t.string "source" end - create_table "work_completions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "work_completions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "user_id", null: false t.integer "target_id", null: false t.datetime "created_at" @@ -1893,21 +1894,21 @@ t.index ["user_id"], name: "fk_rails_204fc81a92" end - create_table "work_completions_submissions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "work_completions_submissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "work_completion_id", null: false t.integer "submission_id", null: false t.index ["submission_id"], name: "fk_rails_1ac4e93988" t.index ["work_completion_id"], name: "fk_rails_5ea64f1af2" end - create_table "work_order_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "work_order_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["name"], name: "index_work_order_types_on_name", unique: true end - create_table "work_orders", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "work_orders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.integer "work_order_type_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false @@ -1915,7 +1916,7 @@ t.index ["work_order_type_id", "state"], name: "index_work_orders_on_work_order_type_id_and_state" end - create_table "workflow_samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "workflow_samples", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.text "name", size: :medium t.integer "user_id" t.datetime "created_at" @@ -1928,7 +1929,7 @@ t.integer "version" end - create_table "workflows", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC", force: :cascade do |t| + create_table "workflows", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", options: "ENGINE=InnoDB ROW_FORMAT=DYNAMIC", force: :cascade do |t| t.string "name" t.integer "item_limit" t.text "locale", size: :medium diff --git a/features/studies/4295391_study_xml_needs_to_be_reverted_to_old_version.feature b/features/studies/4295391_study_xml_needs_to_be_reverted_to_old_version.feature index 1a1530d630..331c614d46 100644 --- a/features/studies/4295391_study_xml_needs_to_be_reverted_to_old_version.feature +++ b/features/studies/4295391_study_xml_needs_to_be_reverted_to_old_version.feature @@ -198,6 +198,7 @@ Feature: The XML for the sequencescape API Data deletion period 3 months + Contaminated Human Data Access Group Data access groupgroup1 EGA DAC Accession Number EGA Policy Accession Number diff --git a/spec/factories/study_metadata_factories.rb b/spec/factories/study_metadata_factories.rb index 0e90d8269b..9994cb4272 100644 --- a/spec/factories/study_metadata_factories.rb +++ b/spec/factories/study_metadata_factories.rb @@ -22,6 +22,14 @@ s3_email_list { 'aa1@sanger.ac.uk;aa2@sanger.ac.uk' } data_deletion_period { '3 months' } + transient { contaminated_human_data_access_group { nil } } + + after(:build) do |study_metadata, evaluator| + if evaluator.contaminated_human_data_access_group.present? + study_metadata.contaminated_human_data_access_group = evaluator.contaminated_human_data_access_group + end + end + # These require property definitions to be properly setup factory :study_metadata_for_study_list_pending_ethical_approval do contains_human_dna { 'Yes' } diff --git a/spec/models/api/study_io_spec.rb b/spec/models/api/study_io_spec.rb index 2373551d7b..405a0657b5 100644 --- a/spec/models/api/study_io_spec.rb +++ b/spec/models/api/study_io_spec.rb @@ -13,7 +13,8 @@ reference_genome: reference_genome, array_express_accession_number: 'AE111', ega_policy_accession_number: 'EGA222', - ega_dac_accession_number: 'DAC333' + ega_dac_accession_number: 'DAC333', + contaminated_human_data_access_group: 'contaminated human data access group test' } end @@ -51,6 +52,7 @@ 'data_access_group' => 'something', 's3_email_list' => 'aa1@sanger.ac.uk;aa2@sanger.ac.uk', 'data_deletion_period' => '3 months', + 'contaminated_human_data_access_group' => 'contaminated human data access group test', 'manager' => [ { login: manager.login, email: manager.email, name: manager.name }, { login: manager2.login, email: manager2.email, name: manager2.name } diff --git a/spec/models/request_spec.rb b/spec/models/request_spec.rb index 782bdaf7d5..81886ed366 100644 --- a/spec/models/request_spec.rb +++ b/spec/models/request_spec.rb @@ -494,4 +494,21 @@ expect(subject[request_type2].started).to eq(1) end end + + describe '.get_all_comments' do + let(:labware) { create :labware } + let(:receptacle) { create :receptacle, labware: labware } + let(:request) { create :request, asset: receptacle } + + before do + create :comment, commentable: labware, description: 'comment on labware' + create :comment, commentable: receptacle, description: 'comment on receptacle' + create :comment, commentable: request, description: 'first comment on request' + create :comment, commentable: request, description: 'second comment on request' + end + + it 'returns all of the comments including associated labware, receptacle and request itself' do + expect(described_class.get_all_comments(request)).to eq(4) + end + end end diff --git a/spec/models/study_spec.rb b/spec/models/study_spec.rb index dc82bfd859..410a566681 100644 --- a/spec/models/study_spec.rb +++ b/spec/models/study_spec.rb @@ -593,6 +593,23 @@ expect(study.study_metadata.faculty_sponsor).not_to be_nil end + context 'contaminated human data access group' do + it 'defaults to null when not specified' do + expect(study.study_metadata.contaminated_human_data_access_group).to be_nil + end + + context 'assigning value to contaminated human data access group field' do + let(:extended_metadata) { create(:study_metadata, contaminated_human_data_access_group: 'example group') } + let(:study) { create(:study, study_metadata: extended_metadata) } + + it 'has the contaminated human data access group value when specified' do + expect(study.study_metadata.contaminated_human_data_access_group).to eq( + extended_metadata[:contaminated_human_data_access_group] + ) + end + end + end + it 'must have a program' do expect(study.study_metadata.program).not_to be_nil end