mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-15 05:34:53 +08:00
38 lines
1.3 KiB
Ruby
38 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class AddStorageLocations < ActiveRecord::Migration[7.0]
|
|
include DatabaseHelper
|
|
|
|
def up
|
|
create_table :storage_locations do |t|
|
|
t.string :name
|
|
t.string :description
|
|
t.references :parent, index: true, foreign_key: { to_table: :storage_locations }
|
|
t.references :team, index: true, foreign_key: { to_table: :teams }
|
|
t.references :created_by, foreign_key: { to_table: :users }
|
|
t.boolean :container, default: false, null: false, index: true
|
|
t.jsonb :metadata, null: false, default: {}
|
|
t.datetime :discarded_at, index: true
|
|
|
|
t.timestamps
|
|
end
|
|
|
|
create_table :storage_location_repository_rows do |t|
|
|
t.references :repository_row, index: true, foreign_key: { to_table: :repository_rows }
|
|
t.references :storage_location, index: true, foreign_key: { to_table: :storage_locations }
|
|
t.references :created_by, foreign_key: { to_table: :users }
|
|
t.jsonb :metadata, null: false, default: {}
|
|
t.datetime :discarded_at, index: true
|
|
|
|
t.timestamps
|
|
end
|
|
|
|
add_gin_index_without_tags :storage_locations, :name
|
|
add_gin_index_without_tags :storage_locations, :description
|
|
end
|
|
|
|
def down
|
|
drop_table :storage_location_repository_rows
|
|
drop_table :storage_locations
|
|
end
|
|
end
|