diff --git a/db/migrate/20091227112908_change_wiki_contents_text_limit.rb b/db/migrate/20091227112908_change_wiki_contents_text_limit.rb new file mode 100644 index 000000000..225f71e68 --- /dev/null +++ b/db/migrate/20091227112908_change_wiki_contents_text_limit.rb @@ -0,0 +1,16 @@ +class ChangeWikiContentsTextLimit < ActiveRecord::Migration + def self.up + # Migrates MySQL databases only + # Postgres would raise an error (see http://dev.rubyonrails.org/ticket/3818) + # Not fixed in Rails 2.3.5 + if ActiveRecord::Base.connection.adapter_name =~ /mysql/i + max_size = 16.megabytes + change_column :wiki_contents, :text, :text, :limit => max_size + change_column :wiki_content_versions, :data, :binary, :limit => max_size + end + end + + def self.down + # no-op + end +end diff --git a/test/unit/wiki_content_test.rb b/test/unit/wiki_content_test.rb index 372121bda..0261678ab 100644 --- a/test/unit/wiki_content_test.rb +++ b/test/unit/wiki_content_test.rb @@ -77,4 +77,12 @@ class WikiContentTest < ActiveSupport::TestCase assert_kind_of String, version.text end end + + def test_large_text_should_not_be_truncated_to_64k + page = WikiPage.new(:wiki => @wiki, :title => "Big page") + page.content = WikiContent.new(:text => "a" * 500.kilobyte, :author => User.find(1)) + assert page.save + page.reload + assert_equal 500.kilobyte, page.content.text.size + end end