Merge pull request #1 from wbotelhos/extracting-migrations

Extracted tables migration to multi-files
main
Washington Botelho 2018-02-08 19:34:06 -02:00 committed by GitHub
commit 754aaca0e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 20 deletions

View File

@ -7,13 +7,18 @@ module Rating
desc 'creates Rating migration' desc 'creates Rating migration'
def create_migration def create_migration
template 'db/migrate/create_rating_tables.rb', "db/migrate/#{timestamp}_create_rating_tables.rb" template 'db/migrate/create_rating_table.rb', "db/migrate/#{timestamp(0)}_create_rating_table.rb"
template 'db/migrate/create_rate_table.rb', "db/migrate/#{timestamp(1)}_create_rate_table.rb"
end end
private private
def timestamp def time
Time.current.strftime '%Y%m%d%H%M%S' @time ||= Time.current
end
def timestamp(seconds)
(time + seconds.seconds).strftime '%Y%m%d%H%M%S'
end end
end end
end end

View File

@ -0,0 +1,19 @@
# frozen_string_literal: true
class CreateRateTable < ActiveRecord::Migration[5.0]
def change
create_table :rating_rates do |t|
t.decimal :value, default: 0, precision: 25, scale: 16
t.references :author, index: true, null: false, polymorphic: true
t.references :resource, index: true, null: false, polymorphic: true
t.references :scopeable, index: true, null: true, polymorphic: true
t.timestamps null: false
end
add_index :rating_rates, %i[author_id author_type resource_id resource_type scopeable_id scopeable_type],
name: :index_rating_rates_on_author_and_resource_and_scopeable,
unique: true
end
end

View File

@ -1,21 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
class CreateRatingTables < ActiveRecord::Migration[5.0] class CreateRatingTable < ActiveRecord::Migration[5.0]
def change def change
create_table :rating_rates do |t|
t.decimal :value, default: 0, precision: 25, scale: 16
t.references :author, index: true, null: false, polymorphic: true
t.references :resource, index: true, null: false, polymorphic: true
t.references :scopeable, index: true, null: true, polymorphic: true
t.timestamps null: false
end
add_index :rating_rates, %i[author_id author_type resource_id resource_type scopeable_id scopeable_type],
name: :index_rating_rates_on_author_and_resource_and_scopeable,
unique: true
create_table :rating_ratings do |t| create_table :rating_ratings do |t|
t.decimal :average, default: 0, mull: false, precision: 25, scale: 16 t.decimal :average, default: 0, mull: false, precision: 25, scale: 16
t.decimal :estimate, default: 0, mull: false, precision: 25, scale: 16 t.decimal :estimate, default: 0, mull: false, precision: 25, scale: 16

View File

@ -1,11 +1,13 @@
# frozen_string_literal: true # frozen_string_literal: true
require File.expand_path('../../lib/generators/rating/templates/db/migrate/create_rating_tables.rb', __dir__) require File.expand_path('../../lib/generators/rating/templates/db/migrate/create_rating_table.rb', __dir__)
require File.expand_path('../../lib/generators/rating/templates/db/migrate/create_rate_table.rb', __dir__)
Dir[File.expand_path('db/migrate/*.rb', __dir__)].each { |file| require file } Dir[File.expand_path('db/migrate/*.rb', __dir__)].each { |file| require file }
CreateArticlesTable.new.change CreateArticlesTable.new.change
CreateAuthorsTable.new.change CreateAuthorsTable.new.change
CreateCategoriesTable.new.change CreateCategoriesTable.new.change
CreateRatingTables.new.change CreateRateTable.new.change
CreateRatingTable.new.change
AddCommentOnRatingRatesTable.new.change AddCommentOnRatingRatesTable.new.change