Switch JSONEncoded from VARCHAR to TEXT
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Sun, 1 Apr 2012 17:55:15 +0000 (19:55 +0200)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Sun, 1 Apr 2012 17:58:23 +0000 (19:58 +0200)
The JSON fields are really "dumb stuff in here" fields.
They are not intended to get indexed or anything. And they
can get large. For example the exif_all field in one of my
simple tests is nearly 7 kB large. Although VARCHAR might
work, TEXT feels just better as the storage type.

mediagoblin/db/sql/extratypes.py

index 8e078f14a32100d6ea38d43fb02545d8d6224f1f..f2304af0b5fd0bcb0bc40ab667d19c2bf812b945 100644 (file)
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
-from sqlalchemy.types import TypeDecorator, Unicode, VARCHAR
+from sqlalchemy.types import TypeDecorator, Unicode, TEXT
 import json
 
 
@@ -50,7 +50,7 @@ class PathTupleWithSlashes(TypeDecorator):
 class JSONEncoded(TypeDecorator):
     "Represents an immutable structure as a json-encoded string."
 
-    impl = VARCHAR
+    impl = TEXT
 
     def process_bind_param(self, value, dialect):
         if value is not None: