mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
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
This commit is contained in:
parent
87535f50e9
commit
d4e02f755d
5 changed files with 12 additions and 12 deletions
|
@ -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]
|
||||
|
||||
|
|
|
@ -74,3 +74,4 @@ RAILS_CONNECTION_ADAPTERS.each do |adapter|
|
|||
end
|
||||
|
||||
require 'active_record/query_cache'
|
||||
require 'active_record/schema_dumper'
|
||||
|
|
|
@ -332,12 +332,6 @@ module ActiveRecord #:nodoc:
|
|||
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:
|
||||
#
|
||||
|
|
|
@ -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 @@ HEADER
|
|||
|
||||
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)
|
||||
|
|
|
@ -18,7 +18,7 @@ if ActiveRecord::Base.connection.respond_to?(:tables)
|
|||
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 @@ if ActiveRecord::Base.connection.respond_to?(:tables)
|
|||
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 @@ if ActiveRecord::Base.connection.respond_to?(:tables)
|
|||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue