Luego tienes que hacer metadata.create_all()
para crear las tablas. Espero que te ayude. 2012/9/27 Luis Fernando Barrera <lfbarrer...@gmail.com> > ¿No te faltará crear la tabla? > > Un codigo de ejemplo. > > from sqlalchemy.orm import sessionmaker, relationship, backref > > engine = create_engine('sqlite:///:memory:', echo=True) > metadata = MetaData() > metadata.bind = engine > Session = sessionmaker(bind=engine) > > from sqlalchemy.ext.declarative import declarative_base > Base = declarative_base() > Base.metadata = metadata > > > Luis Fernando Barrera > lfbarrer...@gmail.com > > > 2012/9/26 miguel zamora m. <mzmp...@gmail.com> > > quiza te sirva un poco de codigo para poder compara y tomar ideas >> >> te dejo esta pagina donde en un proyecto que me toco ver en su minuto >> me ayudo mucho >> >> http://nullege.com/ >> >> >> http://nullege.com/codes/show/src%40d%40b%40dbcook-HEAD%40trunk%40dbcook%40usage%40example%40example1.py/11/sqlalchemy/python >> >> >> ademas esta doc esta bastante bien >> >> http://www.cafepy.com/article/python_attributes_and_methods/ >> >> >> http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.pdf >> >> >> >> >> >> >> >> >> >> >> El día 26 de septiembre de 2012 10:37, Jose Caballero >> <jcaballero....@gmail.com> escribió: >> > en esa linea estoy investigando. >> > Mi problema va un poco mas lejos. >> > Me gustaria ser capaz de poder gestionar un numero arbitrario de tablas >> > (todas con el mismo 'schema'). En otras palabras, necesitaria un numero >> > indefinido de clases, cada una con un nombre diferente (que luego sera, >> > siguiente ese ejemplo, el nombre de la tabla). >> > Estoy intentando combinar el ejemplo de la doc usando declared_attr con >> lo >> > [poco] que se de factorias de clases. >> > >> > Muchas gracias, >> > Jose >> > >> > >> > El 26 de septiembre de 2012 03:19, Marcos Sánchez Provencio >> > <ra...@arrakis.es> escribió: >> > >> >> Creo que lo que quieres es declared_attr >> >> >> >> De la docu, un ejemplo de uso: >> >> >> >> from sqlalchemy.ext.declarative import declared_attr >> >> >> >> class MyMixin(object): >> >> >> >> @declared_attr >> >> def __tablename__(cls): >> >> return cls.__name__.lower() >> >> >> >> __table_args__ = {'mysql_engine': 'InnoDB'} >> >> __mapper_args__= {'always_refresh': True} >> >> >> >> id = Column(Integer, primary_key=True) >> >> >> >> class MyModel(MyMixin, Base): >> >> name = Column(String(1000)) >> >> >> >> >> >> >> >> >> >> El 25/09/12 16:20, Jose Caballero escribió: >> >> >> >> 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') >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> >> Python-es mailing list >> >> Python-es@python.org >> >> http://mail.python.org/mailman/listinfo/python-es >> >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> >> >> >> >> >> _______________________________________________ >> >> Python-es mailing list >> >> Python-es@python.org >> >> http://mail.python.org/mailman/listinfo/python-es >> >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> > >> > >> > _______________________________________________ >> > Python-es mailing list >> > Python-es@python.org >> > http://mail.python.org/mailman/listinfo/python-es >> > FAQ: http://python-es-faq.wikidot.com/ >> > >> >> >> >> -- >> Miguel Zamora M. >> Programador en Computacion e Informatica >> 08-1351249 >> mzmp...@gmail.com >> Santiago-Chile >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/