Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug report template for migrations #26488

Merged
merged 3 commits into from Sep 15, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
65 changes: 65 additions & 0 deletions guides/bug_report_templates/active_record_migrations_gem.rb
@@ -0,0 +1,65 @@
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end

gemfile(true) do
source "https://rubygems.org"
# Activate the gem you are reporting the issue against.
gem "activerecord", "5.0.0.1"
gem "sqlite3"
end

require "active_record"
require "minitest/autorun"
require "logger"

# Ensure backward compatibility with Minitest 4
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)

# This connection will do for database-independent bug reports.
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.logger = Logger.new(STDOUT)

ActiveRecord::Schema.define do
create_table :payments, force: true do |t|
t.decimal :amount, precision: 10, scale: 0, default: 0, null: false
end
end

class Payment < ActiveRecord::Base
end

class ChangeAmountToAddScale < ActiveRecord::Migration[5.0]
def change
reversible do |dir|
dir.up do
change_column :payments, :amount, :decimal, precision: 10, scale: 2, default: 0, null: false
end

dir.down do
change_column :payments, :amount, :decimal, precision: 10, scale: 0, default: 0, null: false
end
end
end
end

class BugTest < Minitest::Test
def test_migration_up
migrator = ActiveRecord::Migrator.new(:up, [ChangeAmountToAddScale])
migrator.run
Payment.reset_column_information

assert_equal "decimal(10,2)", Payment.columns.last.sql_type
end

def test_migration_down
migrator = ActiveRecord::Migrator.new(:down, [ChangeAmountToAddScale])
migrator.run
Payment.reset_column_information

assert_equal "decimal(10,0)", Payment.columns.last.sql_type
end
end
64 changes: 64 additions & 0 deletions guides/bug_report_templates/active_record_migrations_master.rb
@@ -0,0 +1,64 @@
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end

gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
gem "sqlite3"
end

require "active_record"
require "minitest/autorun"
require "logger"

# Ensure backward compatibility with Minitest 4
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)

# This connection will do for database-independent bug reports.
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.logger = Logger.new(STDOUT)

ActiveRecord::Schema.define do
create_table :payments, force: true do |t|
t.decimal :amount, precision: 10, scale: 0, default: 0, null: false
end
end

class Payment < ActiveRecord::Base
end

class ChangeAmountToAddScale < ActiveRecord::Migration[5.0]
def change
reversible do |dir|
dir.up do
change_column :payments, :amount, :decimal, precision: 10, scale: 2, default: 0, null: false
end

dir.down do
change_column :payments, :amount, :decimal, precision: 10, scale: 0, default: 0, null: false
end
end
end
end

class BugTest < Minitest::Test
def test_migration_up
migrator = ActiveRecord::Migrator.new(:up, [ChangeAmountToAddScale])
migrator.run
Payment.reset_column_information

assert_equal "decimal(10,2)", Payment.columns.last.sql_type
end

def test_migration_down
migrator = ActiveRecord::Migrator.new(:down, [ChangeAmountToAddScale])
migrator.run
Payment.reset_column_information

assert_equal "decimal(10,0)", Payment.columns.last.sql_type
end
end
1 change: 1 addition & 0 deletions guides/source/contributing_to_ruby_on_rails.md
Expand Up @@ -40,6 +40,7 @@ Then, don't get your hopes up! Unless you have a "Code Red, Mission Critical, th
Having a way to reproduce your issue will be very helpful for others to help confirm, investigate and ultimately fix your issue. You can do this by providing an executable test case. To make this process easier, we have prepared several bug report templates for you to use as a starting point:

* Template for Active Record (models, database) issues: [gem](https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_gem.rb) / [master](https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_master.rb)
* Template for testing Active Record (migration) issues: [gem](https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_migrations_gem.rb) / [master](https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_record_migrations_master.rb)
* Template for Action Pack (controllers, routing) issues: [gem](https://github.com/rails/rails/blob/master/guides/bug_report_templates/action_controller_gem.rb) / [master](https://github.com/rails/rails/blob/master/guides/bug_report_templates/action_controller_master.rb)
* Template for Active Job issues: [gem](https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_job_gem.rb) / [master](https://github.com/rails/rails/blob/master/guides/bug_report_templates/active_job_master.rb)
* Generic template for other issues: [gem](https://github.com/rails/rails/blob/master/guides/bug_report_templates/generic_gem.rb) / [master](https://github.com/rails/rails/blob/master/guides/bug_report_templates/generic_master.rb)
Expand Down