OSDN Git Service

Enlarge wiki content for MySQL databases (#1071).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Dec 2009 11:57:13 +0000 (11:57 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Dec 2009 11:57:13 +0000 (11:57 +0000)
Limit changed from 64KB to 16MB.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3254 e93f8b46-1217-0410-a6f0-8f06a7374b81

db/migrate/20091227112908_change_wiki_contents_text_limit.rb [new file with mode: 0644]
test/unit/wiki_content_test.rb

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 (file)
index 0000000..225f71e
--- /dev/null
@@ -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
index 372121b..0261678 100644 (file)
@@ -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