scinote-web/db/migrate/20160722082700_add_experiment_level.rb

69 lines
2.8 KiB
Ruby

class AddExperimentLevel < ActiveRecord::Migration[4.2]
def up
# Create experiments table
create_table :experiments do |t|
t.string :name, null: false
t.text :description
t.integer :project_id, null: false
t.integer :created_by_id, null: false
t.integer :last_modified_by_id, null: false
t.boolean :archived, null: false, default: false
t.integer :archived_by_id
t.datetime :archived_on
t.integer :restored_by_id
t.datetime :restored_on
t.timestamps null: false
end
add_foreign_key :experiments, :users, column: :created_by_id
add_foreign_key :experiments, :users, column: :last_modified_by_id
add_foreign_key :experiments, :users, column: :archived_by_id
add_foreign_key :experiments, :users, column: :restored_by_id
add_index :experiments, :name
add_index :experiments, :project_id
add_index :experiments, :created_by_id
add_index :experiments, :last_modified_by_id
add_index :experiments, :archived_by_id
add_index :experiments, :restored_by_id
add_column :my_modules, :experiment_id, :integer, default: 0
add_column :my_module_groups, :experiment_id, :integer, default: 0
change_column_null :my_modules, :experiment_id, false
remove_column :my_modules, :project_id
add_foreign_key :my_modules, :experiments, column: :experiment_id
add_index :my_modules, :experiment_id
change_column_null :my_module_groups, :experiment_id, false
remove_column :my_module_groups, :project_id
add_foreign_key :my_module_groups, :experiments, column: :experiment_id
add_index :my_module_groups, :experiment_id
end
def down
add_column :my_modules, :project_id, :integer, default: 0
add_column :my_module_groups, :project_id, :integer, default: 0
change_column_null :my_modules, :project_id, false
remove_index :my_modules, column: :experiment_id
remove_foreign_key :my_modules, column: :experiment_id
remove_column :my_modules, :experiment_id
change_column_null :my_module_groups, :project_id, false
remove_index :my_module_groups, column: :experiment_id
remove_foreign_key :my_module_groups, column: :experiment_id
remove_column :my_module_groups, :experiment_id
# Drop experiments table
remove_index :experiments, column: :name
remove_index :experiments, column: :project_id
remove_index :experiments, column: :created_by_id
remove_index :experiments, column: :last_modified_by_id
remove_index :experiments, column: :archived_by_id
remove_index :experiments, column: :restored_by_id
remove_foreign_key :experiments, column: :created_by_id
remove_foreign_key :experiments, column: :last_modified_by_id
remove_foreign_key :experiments, column: :archived_by_id
remove_foreign_key :experiments, column: :restored_by_id
drop_table :experiments
end
end