Add fk() shorthand for Colum(ForeignKey(etc))

This commit is contained in:
Yuriy Taraday 2015-12-18 18:22:09 +03:00
parent 14898185cb
commit 3bee93dc4f
1 changed files with 9 additions and 7 deletions

View File

@ -21,6 +21,10 @@ pk_type = db.Integer
pk = functools.partial(db.Column, pk_type, primary_key=True)
def fk(cls, **kwargs):
return db.Column(pk_type, db.ForeignKey(cls.id), **kwargs)
class Json(types.TypeDecorator):
impl = db.Text
@ -48,15 +52,15 @@ class Component(db.Model):
class Schema(db.Model):
id = pk()
name = db.Column(db.String(128))
component_id = db.Column(pk_type, db.ForeignKey(Component.id))
namespace_id = db.Column(pk_type, db.ForeignKey(Namespace.id))
component_id = fk(Component)
namespace_id = fk(Namespace)
content = db.Column(Json)
class Template(db.Model):
id = pk()
name = db.Column(db.String(128))
component_id = db.Column(pk_type, db.ForeignKey(Component.id))
component_id = fk(Component)
content = db.Column(Json)
# Environment data storage
@ -74,10 +78,8 @@ class Environment(db.Model):
class EnvironmentSchemaValues(db.Model):
environment_id = db.Column(pk_type, db.ForeignKey(Environment.id),
primary_key=True)
schema_id = db.Column(pk_type, db.ForeignKey(Schema.id),
primary_key=True)
environment_id = fk(Environment, primary_key=True)
schema_id = fk(Schema, primary_key=True)
values = db.Column(Json)
__table_args__ = (