Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

ActiveRecord::Base.schema_ignore_tables => ActiveRecord::SchemaDumper…

….ignore_tables

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3347 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit d4e02f755d4de5ddd7eb98afd95391993fbb81d9 1 parent 87535f5
Tobias Lütke authored
View
2  activerecord/CHANGELOG
@@ -1,6 +1,6 @@
*SVN*
-* Added ActiveRecord::Base.schema_ignore_tables which tells SchemaDumper which tables to ignore. Useful for tables with funky column like the ones required for tsearch2. [TobiasLuetke]
+* Added ActiveRecord::SchemaDumper.ignore_tables which tells SchemaDumper which tables to ignore. Useful for tables with funky column like the ones required for tsearch2. [TobiasLuetke]
* SchemaDumper now doesn't fail anymore when there are unknown column types in the schema. Instead the table is ignored and a Comment is left in the schema.rb. [TobiasLuetke]
View
1  activerecord/lib/active_record.rb
@@ -74,3 +74,4 @@
end
require 'active_record/query_cache'
+require 'active_record/schema_dumper'
View
6 activerecord/lib/active_record/base.rb
@@ -332,12 +332,6 @@ def self.reset_subclasses
cattr_accessor :schema_format
@@schema_format = :sql
- # A list of tables which should not be dumped to the schema.
- # Acceptable values are strings as well as regexp.
- # This setting is only used if schema_format == :ruby
- cattr_accessor :schema_ignore_tables
- @@schema_ignore_tables = []
-
class << self # Class methods
# Find operates with three different retrieval approaches:
#
View
9 activerecord/lib/active_record/schema_dumper.rb
@@ -4,6 +4,11 @@ module ActiveRecord
class SchemaDumper #:nodoc:
private_class_method :new
+ # A list of tables which should not be dumped to the schema.
+ # Acceptable values are strings as well as regexp.
+ # This setting is only used if ActiveRecord::Base.schema_format == :ruby
+ cattr_accessor :ignore_tables
+ @@ignore_tables = []
def self.dump(connection=ActiveRecord::Base.connection, stream=STDOUT)
new(connection).dump(stream)
@@ -44,12 +49,12 @@ def trailer(stream)
def tables(stream)
@connection.tables.sort.each do |tbl|
- next if ["schema_info", Base.schema_ignore_tables].flatten.any? do |ignored|
+ next if ["schema_info", ignore_tables].flatten.any? do |ignored|
case ignored
when String: tbl == ignored
when Regexp: tbl =~ ignored
else
- raise StandardError, 'ActiveRecord::Base.schema_ignore_tables accepts an array of String and / or Regexp values.'
+ raise StandardError, 'ActiveRecord::SchemaDumper.ignore_tables accepts an array of String and / or Regexp values.'
end
end
table(tbl, stream)
View
6 activerecord/test/schema_dumper_test.rb
@@ -18,7 +18,7 @@ def test_schema_dump
def test_schema_dump_with_string_ignored_table
stream = StringIO.new
- ActiveRecord::Base.schema_ignore_tables = ['accounts']
+ ActiveRecord::SchemaDumper.ignore_tables = ['accounts']
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
output = stream.string
assert_no_match %r{create_table "accounts"}, output
@@ -30,7 +30,7 @@ def test_schema_dump_with_string_ignored_table
def test_schema_dump_with_regexp_ignored_table
stream = StringIO.new
- ActiveRecord::Base.schema_ignore_tables = [/^account/]
+ ActiveRecord::SchemaDumper.ignore_tables = [/^account/]
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
output = stream.string
assert_no_match %r{create_table "accounts"}, output
@@ -41,7 +41,7 @@ def test_schema_dump_with_regexp_ignored_table
def test_schema_dump_illegal_ignored_table_value
stream = StringIO.new
- ActiveRecord::Base.schema_ignore_tables = [5]
+ ActiveRecord::SchemaDumper.ignore_tables = [5]
assert_raise(StandardError) do
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
end
Please sign in to comment.
Something went wrong with that request. Please try again.