30 lines
987 B
Ruby
30 lines
987 B
Ruby
class UpdateVideosFromArchitecture < ActiveRecord::Migration[8.1]
|
|
def change
|
|
change_table :videos do |t|
|
|
# Make work reference optional (videos can exist without works initially)
|
|
t.change_null :work_id, true
|
|
|
|
# Add defaults for boolean fields
|
|
t.change_default :imported, false
|
|
t.change_default :processing_failed, false
|
|
t.change_default :has_subtitles, false
|
|
|
|
# Note: file_size is already integer, SQLite compatible with bigint
|
|
|
|
# Add source_type default and make required fields not null
|
|
t.change_default :source_type, 0
|
|
t.change_null :source_type, false
|
|
|
|
# Make file_path required
|
|
t.change_null :file_path, false
|
|
end
|
|
|
|
# Add indexes as specified in architecture
|
|
add_index :videos, [:storage_location_id, :file_path], unique: true
|
|
add_index :videos, :source_type
|
|
add_index :videos, :file_hash
|
|
add_index :videos, :imported
|
|
add_index :videos, [:work_id, :resolution_label]
|
|
end
|
|
end
|