Beispiel #1
0
 def make_declarative_base(self):
     """Creates the declarative base."""
     base = declarative_base(cls=(JSONSerializableBase, Model),
                             name='Model',
                             metaclass=_BoundDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base
Beispiel #2
0
 def make_declarative_base(self):
     from flask.ext.sqlalchemy import _BoundDeclarativeMeta, _QueryProperty
     base = declarative_base(cls=MyModel,
                             name='MyModel',
                             metaclass=_BoundDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base
 def make_declarative_base(self):
     """Creates the declarative base."""
     base = declarative_base(cls=Model,
                             name='Model',
                             metaclass=ModelDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base
Beispiel #4
0
 def make_declarative_base(self, *args):
     """Creates the declarative base."""
     base = declarative_base(cls=_Model,
                             name='Model',
                             metadata=self.metadata,
                             metaclass=_BoundDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base
Beispiel #5
0
 def make_declarative_base(self, metadata=None):
     """Hack to pass customized constructor"""
     base = declarative_base(cls=Model,
                             name='Model',
                             metaclass=_BoundDeclarativeMeta,
                             constructor=_customized_constructor)
     base.query = _QueryProperty(self)
     return base
 def make_declarative_base(self, metadata=None):
     """Creates the declarative base."""
     base = fsqla.declarative_base(
         cls=fsqla.Model,
         name='Model',
         metadata=metadata,
         metaclass=TableArgsMeta(
             fsqla._BoundDeclarativeMeta,
             {'mysql_engine': 'InnoDB'} ) )
     base.query = fsqla._QueryProperty(self)
     return base
Beispiel #7
0
def _patch_metadata():
    naming_convention = {
        'fk': ('fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s'
                '_%(referred_column_0_name)s'),
        'pk': 'pk_%(table_name)s',
        'ix': 'ix_%(table_name)s_%(column_0_name)s',
        'ck': 'ck_%(table_name)s_%(constraint_name)s',
        'uq': 'uq_%(table_name)s_%(column_0_name)s',
    }
    metadata = MetaData(naming_convention=naming_convention)
    base = declarative_base(cls=sqlalchemy.Model, name='Model',
                            metaclass=sqlalchemy._BoundDeclarativeMeta,
                            metadata=metadata)
    base.query = sqlalchemy._QueryProperty(db)
    db.Model = base
Beispiel #8
0
def _patch_metadata():
    naming_convention = {
        'fk': ('fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s'
               '_%(referred_column_0_name)s'),
        'pk':
        'pk_%(table_name)s',
        'ix':
        'ix_%(table_name)s_%(column_0_name)s',
        'ck':
        'ck_%(table_name)s_%(constraint_name)s',
        'uq':
        'uq_%(table_name)s_%(column_0_name)s',
    }
    metadata = MetaData(naming_convention=naming_convention)
    base = declarative_base(cls=sqlalchemy.Model,
                            name='Model',
                            metaclass=sqlalchemy._BoundDeclarativeMeta,
                            metadata=metadata)
    base.query = sqlalchemy._QueryProperty(db)
    db.Model = base
Beispiel #9
0
 def make_declarative_base(self):
     """Creates the declarative base."""
     base = declarative_base(cls=Model, name='Model',
                             metaclass=ModelDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base
Beispiel #10
0
    def to_dict(model):
        """ converts a sqlalchemy model to a dictionary """
        # first we get the names of all the columns on your model
        columns = [c.key for c in sqlalchemy.orm.class_mapper(model.__class__).columns]
        # then we return their values in a dict
        return dict((c, getattr(model, c)) for c in columns)


# setup our base mapper and database metadata
metadata = db.MetaData()
base = declarative_base(cls=BaseMapper,
                        metaclass=_BoundDeclarativeMeta,
                        metadata=metadata,
                        name='Model')
base.query = _QueryProperty(db)
db.Model = base


class Report(base):
    """ associative table for voting on things """
    reporter_id = db.Column(
        db.Integer, db.ForeignKey("user.id"), primary_key=True)
    reporter = db.relationship('User', foreign_keys=[reporter_id])

    reportee_id = db.Column(
        db.Integer, db.ForeignKey("thing.id"), primary_key=True)
    reportee = db.relationship('Thing')

    reason = db.Column(db.String(255))
Beispiel #11
0
model_classes = []
if app.config.get("AUTOGENERATE_MODEL_ADMIN", True):
    # We have to hook in to the db.Model metaclass to keep track of any table
    # classes we define
    class _AdminBoundDeclarativeMeta(sqlalchemy._BoundDeclarativeMeta):
        def __init__(self, name, bases, d):
            super(self.__class__, self).__init__(name, bases, d)
            if name != "Model":
                m = re.search(r'\.(.*)\.models', self.__module__)
                categoryName = m.group(1)
                model_classes.append((self, categoryName))

    db.Model = sqlalchemy.declarative_base(cls=sqlalchemy.Model,
        name="Model", mapper=sqlalchemy.signalling_mapper,
        metaclass=_AdminBoundDeclarativeMeta)
    db.Model.query = sqlalchemy._QueryProperty(db)


# Automatically include views, files and APIs
include_files = set(["views.py", "models.py", "api.py"])

for root, dirname, files in os.walk(app.config["BASEDIR"]):
    for filename in files:
        if filename in include_files:
            relative = os.path.relpath(os.path.join(root, filename))[:-3]
            module = ".".join(relative.split(os.sep))
            __import__(module, level=-1)

for cls, categoryName in model_classes:
    admin.add_view(SecuredModelView(cls, db.session,
        category=categoryName))
Beispiel #12
0
from sqlalchemy.ext import declarative
import sqlalchemy

from eisitirio import app
from eisitirio.database import custom_model

DB = flask_sqlalchemy.SQLAlchemy(app.APP)

# Awkward hack to use a custom model class. Flask-SQLAlchemy 3.0 (in beta as of
# 2016-01-11) has a model_class parameter to the above constructor, which should
# be used once v3.0 is released as stable.
DB.Model = declarative.declarative_base(
    cls=custom_model.CustomModel,
    name='Model'.encode('us-ascii'),
    metadata=None,
    metaclass=custom_model.CustomModelMeta
)
DB.Model.query = flask_sqlalchemy._QueryProperty(DB) # pylint: disable=protected-access

@sqlalchemy.event.listens_for(sqlalchemy.Table, "column_reflect")
def column_reflect(_, unused, column_info):
    """Change the presented types of columns to avoid confusing alembic."""
    if isinstance(column_info['type'], mysql.TINYINT):
        column_info['type'] = sqlalchemy.Boolean()

    if isinstance(column_info['type'], mysql.MEDIUMTEXT):
        column_info['type'] = sqlalchemy.UnicodeText(length=65536)

    if isinstance(column_info['type'], mysql.TEXT):
        column_info['type'] = sqlalchemy.UnicodeText(length=256)
Beispiel #13
0
from wega.db.core import db

from flask.ext.sqlalchemy import BaseQuery, _QueryProperty


class Base(db.Model):
    __abstract__ = True

    def __init__(self, **kwargs):
        for col_name in self.__table__.columns.keys():
            setattr(self, col_name, kwargs.get(col_name))


Base.query_class = BaseQuery
Base.query = _QueryProperty(db)


class Product(Base):
    __tablename__ = 'product'

    id = db.Column(db.Integer, index=True, primary_key=True)
    name = db.Column(db.String(255), index=True, nullable=False)
    price = db.Column(db.Float(precision=2), index=True, nullable=False)
    image_name = db.Column(db.String(255), index=True)
    description = db.Column(db.String(1000))
    composition = db.relationship('Composition')
    #size = db.Column(db.Integer, index=True)


class Fiber(Base):
    __tablename__ = 'fiber'
Beispiel #14
0
model_classes = []
if app.config.get("AUTOGENERATE_MODEL_ADMIN", True):
    # We have to hook in to the db.Model metaclass to keep track of any table
    # classes we define
    class _AdminBoundDeclarativeMeta(sqlalchemy._BoundDeclarativeMeta):
        def __init__(self, name, bases, d):
            super(self.__class__, self).__init__(name, bases, d)
            if name != "Model":
                model_classes.append(self)

    db.Model = sqlalchemy.declarative_base(
        cls=sqlalchemy.Model,
        name="Model",
        mapper=sqlalchemy.signalling_mapper,
        metaclass=_AdminBoundDeclarativeMeta)
    db.Model.query = sqlalchemy._QueryProperty(db)

# Automatically include views, files and APIs
include_files = set(["views.py", "models.py", "api.py"])

for root, dirname, files in os.walk(app.config["BASEDIR"]):
    for filename in files:
        if filename in include_files:
            relative = os.path.relpath(os.path.join(root, filename))[:-3]
            module = ".".join(relative.split(os.sep))
            __import__(module, level=-1)

for cls in model_classes:
    admin.add_view(SecuredModelView(cls, db.session, category="CRUD"))
Beispiel #15
0
 def make_declarative_base(self, *args):
     """Creates the declarative base."""
     base = declarative_base(cls=_Model, name='Model', metadata=self.metadata,
                             metaclass=_BoundDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base
Beispiel #16
0
 def make_declarative_base(self):
     from flask.ext.sqlalchemy import _BoundDeclarativeMeta, _QueryProperty
     base = declarative_base(cls=MyModel, name='MyModel', metaclass=_BoundDeclarativeMeta)
     base.query = _QueryProperty(self)
     return base