(venv) ❯ python app_with_sqlalchemy.py
Traceback (most recent call last):
File "app_with_sqlalchemy.py", line 12, in <module>
db.drop_all()
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py", line 980, in drop_all
self._execute_for_all_tables(app, bind, 'drop_all')
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py", line 964, in _execute_for_all_tables
op(bind=self.get_engine(app, bind), **extra)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/schema.py", line 3722, in drop_all
tables=tables)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1856, in _run_visitor
conn._run_visitor(visitorcallable, element, **kwargs)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1481, in _run_visitor
**kwargs).traverse_single(element)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/visitors.py", line 121, in traverse_single
return meth(obj, **kw)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 871, in visit_metadata
table, drop_ok=True, _is_metadata_operation=True)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/visitors.py", line 121, in traverse_single
return meth(obj, **kw)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 918, in visit_table
self.connection.execute(DropTable(table))
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 68, in _execute_on_connection
return connection._execute_ddl(self, multiparams, params)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 968, in _execute_ddl
compiled
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
context)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
exc_info
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
cursor.execute(statement, parameters)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1217, 'Cannot delete or update a parent row: a foreign key constraint fails') [SQL: u'\nDROP TABLE users']
class Address(db.Model):
__tablename__ = 'address'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
email_address = db.Column(db.String(128), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
user = db.relationship('User', back_populates='addresses')
def __init__(self, email, user):
self.email = email
self.user = user
from users import User, Address