diff --git a/db/migrations/0001_add_initial_tables.rb b/db/migrations/0001_add_initial_tables.rb index dc267f6..27ccc18 100644 --- a/db/migrations/0001_add_initial_tables.rb +++ b/db/migrations/0001_add_initial_tables.rb @@ -5,6 +5,7 @@ Sequel.migration do primary_key :id String :name, null: false String :type, null: false + String :description, text: true DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end @@ -12,28 +13,16 @@ Sequel.migration do create_table(:benchmarks) do primary_key :id String :name, null: false - String :description + String :description, text: true String :scoring, null: false DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end - - create_table(:results) do - primary_key :id - String :score, null: false - DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP - DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP - end - alter_table(:results) do - add_foreign_key :hardware_id, :hardware - add_foreign_key :benchmark_id, :benchmarks - end end down do drop_table(:hardware) drop_table(:benchmarks) - drop_table(:results) end end diff --git a/db/migrations/0002_add_result_type.rb b/db/migrations/0002_add_result_type.rb deleted file mode 100644 index 60665ab..0000000 --- a/db/migrations/0002_add_result_type.rb +++ /dev/null @@ -1,17 +0,0 @@ -Sequel.migration do - - up do - alter_table(:results) do - add_column :type, String, null: false, default: 'fps' - add_column :minimum_score, String - add_column :maximum_score, String - end - end - - down do - drop_column :results, :type - drop_column :results, :minimum_score - drop_column :results, :maximum_score - end - -end diff --git a/db/migrations/0002_add_tests_table.rb b/db/migrations/0002_add_tests_table.rb new file mode 100644 index 0000000..91f56b7 --- /dev/null +++ b/db/migrations/0002_add_tests_table.rb @@ -0,0 +1,28 @@ +Sequel.migration do + + up do + # create tests table + create_table(:tests) do + primary_key :id + foreign_key :hardware_id, :hardware + String :date_tag, null: false + String :description, text: true + DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP + DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP + end + + # create many-to-many table for benchmarks and tests + create_table(:tests_benchmarks) do + foreign_key :test_id, :tests + foreign_key :benchmark_id, :benchmarks + DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP + DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP + end + end + + down do + drop_table(:tests_benchmarks) + drop_table(:tests) + end + +end diff --git a/db/migrations/0003_add_results_table.rb b/db/migrations/0003_add_results_table.rb new file mode 100644 index 0000000..cdcbab0 --- /dev/null +++ b/db/migrations/0003_add_results_table.rb @@ -0,0 +1,29 @@ +Sequel.migration do + + up do + # create tests table + create_table(:results) do + primary_key :id + foreign_key :benchmark_id, :benchmarks + Float :avg_score, null: false + Float :min_score + Float :max_score + DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP + DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP + end + + # create many-to-many table for results and tests + create_table(:tests_results) do + foreign_key :test_id, :tests + foreign_key :result_id, :results + DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP + DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP + end + end + + down do + drop_table(:tests_results) + drop_table(:results) + end + +end diff --git a/db/migrations/0003_add_tests_table.rb b/db/migrations/0003_add_tests_table.rb deleted file mode 100644 index 31fb3cc..0000000 --- a/db/migrations/0003_add_tests_table.rb +++ /dev/null @@ -1,31 +0,0 @@ -Sequel.migration do - - up do - # create tests table - create_table(:tests) do - primary_key :id - String :date_tag, null: false - DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP - DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP - end - - # add foreign keys to tests table - alter_table(:tests) do - add_foreign_key(:benchmark_id, :benchmarks, null: false) - add_foreign_key(:hardware_id, :hardware, null: false) - end - - # add the test ID link to results table; remove old links to hardware and benchmarks tables - alter_table(:results) do - add_foreign_key(:test_id, :tests, null: false) - drop_column(:benchmark_id) - drop_column(:hardware_id) - end - end - - down do - drop_column(:results, :test_id) - drop_table(:tests) - end - -end