... but SQLFORM and web2py crud will not work with sqlalchemy.

one reasons we cannot do something like SQLAlchemy's reflect in web2py
is that the database is not aware of how web2py should treat the
field. For example a 'varchar' field could be a 'string', a
'password', an 'upload', or a 'list <something>'. The db does not know
so in web2py you have to declare (define_table) it.

Massimo





On Oct 2, 4:27 pm, mdipierro <[email protected]> wrote:
> SQLAlchemy is better for accessing legacy DB.
>
> Massimo
>
> On Oct 2, 4:16 pm, Ivan Matveev <[email protected]> wrote:
>
> > 2010/10/2 Mariano Reingart <[email protected]>
>
> > > Did you try string notation for references?
>
> > > db.define_table('cars',
> > >   Field('car_id','integer'),
> > >    Field('model_id', "reference car_models.model_id"),
> > >    Field('note','text'),
> > >   primarykey=['car_id'],
> > >   migrate=False
> > > )
>
> > > Anyway, if you are using single-field integer primary keys, i think
> > > you may try "id" field type:
>
> > > db.define_table('car_models',
> > >   Field('model_id','id'),
> > >   Field('model_name','string'),
> > >    migrate=False
> > > )
>
> > > db.define_table('cars',
> > >   Field('car_id','id'),
> > >   Field('model_id','reference car_models'),
> > >   Field('note','text'),
> > >   migrate=False
> > > )
>
> > Tried both: string notation for references and making primary key field type
> > 'id'. No luck.
>
> > Now I'm looking at SQLAlchemy(SA). Want to try to use it as legacy db
> > backend. It is realy easy to get db scheme from a db with SA. Just  3 lines
> > of code:
>
> > engine = create_engine('mysql://myuser:myp...@localhost/mydb', echo=True)
> > metadata = MetaData()
> > metadata.reflect(bind = engine)
>
> > and the scheme is in metadata, ready to provide access to all tables in the
> > db.
>
>

Reply via email to