diff --git a/app/models/music/album.rb b/app/models/music/album.rb index 4aff93b..57ff092 100644 --- a/app/models/music/album.rb +++ b/app/models/music/album.rb @@ -1,12 +1,10 @@ class Album < ActiveRecord::Base belongs_to :artist has_many :tracks, :order => 'bonus ASC, position ASC', :dependent => :destroy - has_many :local_brainz_cached_releases, :class_name => 'LocalBrainz::CachedRelease', :dependent => :destroy has_many :album_formats has_many :release_formats, :through => :album_formats default_scope where(:master => true) - scope :with_non_masters, where(:master => [true, false]) def self.with_format f joins(:release_formats).where(:release_formats => { :hash => f.to_s }) diff --git a/db/migrate/20110926002631_add_indexes.rb b/db/migrate/20110926002631_add_indexes.rb new file mode 100644 index 0000000..3eb3392 --- /dev/null +++ b/db/migrate/20110926002631_add_indexes.rb @@ -0,0 +1,95 @@ +class AddIndexes < ActiveRecord::Migration + def up + # Artists + add_index :artists, :name + add_index :artists, :original_name + add_index :artists, :status + add_index :artists, :listeners + + add_index :artist_aliases, :artist_id + add_index :artist_aliases, :name + + add_index :artist_links, :artist_id + + # Albums + add_index :albums, :name + add_index :albums, :artist_id + add_index :albums, :year + add_index :albums, :has_pic + add_index :albums, :master + + add_index :release_formats, :hash + add_index :album_formats, :album_id + add_index :album_formats, :release_format_id + + add_index :album_genres, :album_id + add_index :album_genres, :genre_id + + add_index :album_styles, :album_id + add_index :album_styles, :style_id + + # Tracks + add_index :tracks, :name + add_index :tracks, :album_id + add_index :tracks, :position + add_index :tracks, :bonus + + add_index :track_artists, :track_id + add_index :track_artists, :artist_id + add_index :track_artists, :main + + # Beathaven infrastructure + add_index :users, :name + add_index :users, :vkid + + add_index :sessions, :user_id + add_index :sessions, :key + end + + def down + # Artists + remove_index :artists, :column => :name + remove_index :artists, :column => :original_name + remove_index :artists, :column => :status + remove_index :artists, :column => :listeners + + remove_index :artist_aliases, :column => :artist_id + remove_index :artist_aliases, :column => :name + + remove_index :artist_links, :column => :artist_id + + # Albums + remove_index :albums, :column => :name + remove_index :albums, :column => :artist_id + remove_index :albums, :column => :year + remove_index :albums, :column => :has_pic + remove_index :albums, :column => :master + + remove_index :release_formats, :column => :hash + remove_index :album_formats, :column => :album_id + remove_index :album_formats, :column => :release_format_id + + remove_index :album_genres, :column => :album_id + remove_index :album_genres, :column => :genre_id + + remove_index :album_styles, :column => :album_id + remove_index :album_styles, :column => :style_id + + # Tracks + remove_index :tracks, :column => :name + remove_index :tracks, :column => :album_id + remove_index :tracks, :column => :position + remove_index :tracks, :column => :bonus + + remove_index :track_artists, :column => :track_id + remove_index :track_artists, :column => :artist_id + remove_index :track_artists, :column => :main + + # Beathaven infrastructure + remove_index :users, :column => :name + remove_index :users, :column => :vkid + + remove_index :sessions, :column => :user_id + remove_index :sessions, :column => :key + end +end