$ cat t.py
from flask import Flask, render_template, request
from active_sqlalchemy import SQLAlchemy
app = Flask(name)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
db = SQLAlchemy()
class Alert(db.Model):
mapper_args = {'polymorphic_on': 'type'}
tablename = 'alerts'
id = db.Column(db.Integer, primary_key=True)
type = db.Column(db.String(20))
class ComparisonAlert(Alert):
mapper_args = {'polymorphic_identity': "Comparison"}
percent = db.Column(db.Float(), nullable=False, default=10.0)
db.init_app(app)
$ python t.py
Traceback (most recent call last):
File "t.py", line 14, in
class ComparisonAlert(Alert):
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/api.py", line 55, in init
_as_declarative(cls, classname, cls.dict)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/base.py", line 254, in _as_declarative
**table_kw)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/schema.py", line 393, in new
"existing Table object." % key)
sqlalchemy.exc.InvalidRequestError: Table 'alerts' is already defined for this MetaData instance. Specify 'extend_existing=True' to redefine options and columns on an existing Table object.