[Python-es] SQLAlchemy: problema para intentar crear clases con valor de __tablename__ como argumento
Jose Caballero
jcaballero.hep en gmail.com
Mar Sep 25 16:20:13 CEST 2012
Hola,
SQLAlchemy 0.7.8-1
python 2.4
Si hago algo como lo siguiente [1] todo funciona perfectamente. Luego puedo
crear la tabla en la DB con el nombre "table1", y puedo interaccionar con
ella.
Lo que quisiera hacer es que el nombre de la tabla fuese un parametro. Pero
si hago algo como [2], al intentar usar la clase (para salvar un objeto
session, por ejemplo) obtengo este mensaje de error [3].
Estoy intentando investigar por que, pero si alguien mientras tanto me da
una pista, todo comentario sera bien recibido.
Muchas gracias por adelantado.
Jose
(perdon por la ausencia de tildes)
-------------------------------------------------------------------------------------------------------
[1]
Base = declarative_base()
class Foo(Base):
__tablename__ = "table1"
id = Column(Integer, primary_key=True)
var1 = Column(String)
var2 = Column(String)
-------------------------------------------------------------------------------------------------------
[2]
Base = declarative_base()
def createFoo(tablename):
class Bar(Base):
__tablename__ = tablename
id = Column(Integer, primary_key=True)
var1 = Column(String)
var2 = Column(String)
return Bar
Foo = createFoo('table1')
-------------------------------------------------------------------------------------------------------
[3]
sqlalchemy.exc.OperationalError: (OperationalError) no such table: table1
u'INSERT INTO table1 (var1, var2) VALUES (?, ?)' ('blah', 'blah')
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120925/fbe7a941/attachment.html>
Más información sobre la lista de distribución Python-es