--- /dev/null
+from sqlalchemy import *
+from migrate import *
+import migrate.changeset # monkeypatches Column
+
+import json
+
+from sqlalchemy import orm
+from sqlalchemy.ext.declarative import declarative_base
+TableBase = declarative_base()
+
+
+class User(TableBase):
+ __tablename__ = 'users'
+ id = Column(Integer, primary_key=True)
+ name = Column(Unicode(length=20), nullable=False)
+ unique_identifier = Column(Unicode(length=32), nullable=False)
+ stash = Column(PickleType(pickler=json), nullable=True, default={})
+
+
+def upgrade(migrate_engine):
+ TableBase.metadata.bind = migrate_engine
+
+ User.__table__.c.stash.create(table=User.__table__)
+ User.__table__.c.stash.alter(nullable=False)
+
+def downgrade(migrate_engine):
+ TableBase.metadata.bind = migrate_engine
+
+ User.__table__.c.stash.drop()
# encoding: utf8
import colorsys
+import json
from math import sin, pi
import random
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import relation
from sqlalchemy.orm.session import Session
-from sqlalchemy.types import Integer, Unicode
+from sqlalchemy.types import Integer, PickleType, Unicode
from spline.model.meta import TableBase
Tests as false and tries to respond to method calls the expected way.
"""
+ stash = {}
def __nonzero__(self):
return False
id = Column(Integer, primary_key=True)
name = Column(Unicode(length=20), nullable=False)
unique_identifier = Column(Unicode(length=32), nullable=False)
+ stash = Column(PickleType(pickler=json), nullable=False, default=dict())
def __init__(self, *args, **kwargs):
# Generate a unique hash if one isn't provided (which it shouldn't be)