Matraz-SQLAlchemy create_all ()

Cuando ejecuto el comando dbManager.create_all (), se ejecuta sin errores pero no logra crear las tablas. Cuando elimino la base de datos y ejecuto el comando create_all (), aparece el error no existe como ##### que debería obtener, pero cuando la base de datos existe, no sucede nada. Por favor, ¿alguien puede ver lo que estoy haciendo mal?

from blogconfig import dbManager class Art(dbManager.Model): id = dbManager.Column(dbManager.Integer, primary_key = True) title = dbManager.Column(dbManager.String(64), index = True, unique = True) content = dbManager.Column(dbManager.Text(5000)) def __repr__(self): return '' %(self.title) 

EDITAR Este es el comando de shell

 from blogconfig import dbManager >>> dbManager.create_all() import models >>> a = models.Art(title='des', content='asdfvhbdjbjdn') >>> dbManager.session.add(a) >>> dbManager.session.commit() Traceback (most recent call last): File "", line 1, in  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", line 149, in do return getattr(self.registry(), name)(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 721, in commit self.transaction.commit() File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 354, in commit self._prepare_impl() File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 334, in _prepare_impl self.session.flush() File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1818, in flush self._flush(objects) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1936, in _flush transaction.rollback(_capture_exception=True) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__ compat.reraise(exc_type, exc_value, exc_tb) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1900, in _flush flush_context.execute() File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute rec.execute(self) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute uow File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 64, in save_obj table, insert) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 569, in _emit_insert_statements execute(statement, params) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute params) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement compiled_sql, distilled_params File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context context) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception exc_info File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 195, in raise_from_cause reraise(type(exception), exception, tb=exc_tb) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context context) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute cursor.execute(statement, parameters) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue sqlalchemy.exc.ProgrammingError: (ProgrammingError) (1146, "Table 'blog.art' doesn't exist") 'INSERT INTO art (title, content) VALUES (%s, %s)' ('des', 'asdfvhbdjbjdn') 

dbManager no conocerá los modelos que defina en otros módulos a menos que se importen antes de ejecutar create_all .

En una aplicación real, esto no debería importar porque la ejecución de la aplicación flask debería configurar la base de datos e importar vistas / planos para registrarlos. Como las vistas usan los modelos, los modelos se importan indirectamente y están disponibles para el dbManager.

blogconfig sus modelos en el módulo blogconfig después de crear la instancia de dbManager, o cambie el orden de sus comandos de shell para que sean

 >>> from blogconfig import dbManager >>> import models >>> dbManager.create_all() 

SQLAlchemy solo creará tablas, la base de datos ya debe existir, por lo que está viendo el otro error al eliminar la base de datos.