Thanks, I have tried another way that worked before you replied: environment.py
#add in before the return statement from sqlalchemy import engine_from_config from appname import model engine = engine_from_config(config, 'sqlalchemy.') model.init_model(engine) After adding in the following codes in environment.py I got the "paster setup-app" command to work without any errors. On Jun 9, 12:31 am, afrotypa <[email protected]> wrote: > I havent run the tutorial but I looked at it briefly and it seemed > correct (if you are modifying the files as suggested - not running the > commands in the shell which maybe what were are doing). > > The only error I saw - without the benefit of trying it out is the > __repr__ method of Address which returns > > self.name > > name is an attribute of class Person not of class Address. It should > return attribute(s) from Address (e.g. address) > > This is probably simply an artefact of cutting and pasting. > > On Jun 7, 3:08 pm, afrotypa <[email protected]> wrote: > > > I replied your email message but also posting my reply here for anyone > > else who might run into this. > > > Short Version > > ========== > > > The engine creation step is likely missing from the tutorial. > > > Longer Version > > =========== > > > For the purpose of this discussion say your project is called myapp > > > In a fresh pylons install with SQLAlchemy selected, the engine is > > created when you run > > > pylons setup-app development.ini > > > setup-app is defined in myapp/myapp/websetup.py thus :- > > > def setup_app(command, conf, vars): > > """Place any commands to setup myapp here""" > > # Don't reload the app if it was loaded under the testing > > environment > > if not pylons.test.pylonsapp: > > load_environment(conf.global_conf, conf.local_conf) > > > # Create the tables if they don't already exist > > Base.metadata.create_all(bind=Session.bind) > > > This in turn calls load_environment() which is defined in > > > myapp/myapp/config/environment.py > > > In this file an engine is created and init_model is then called using > > the engine. i.e. > > > # Setup the SQLAlchemy database engine > > engine = engine_from_config(config, 'sqlalchemy.') > > init_model(engine) > > > That is the missing step. > > > On Jun 5, 3:14 pm, afrotypa <[email protected]> wrote: > > > > My guess is Session.bind has not been initialized? > > > > Perhaps you need to call init_model which id defined in model/ > > > __init__.py first? See its definition here :- > > > > def init_model(engine): > > > """Call me before using any of the tables or classes in the > > > model""" > > > Session.configure(bind=engine) > > > > On Jun 5, 11:58 am, Victor <[email protected]> wrote: > > > > > I'm following the PylonsHQ Documentation on > > > > models:http://pylonshq.com/docs/en/1.0/models/ > > > > > I have managed to follow the docs until the portion where I am trying > > > > to create the database. The code I add to websetup.py is as follows: > > > > > from myapp.model.meta import Base, Session > > > > log.info("Creating tables") > > > > Base.metadata.drop_all(checkfirst=True, bind=Session.bind) > > > > Base.metadata.create_all(bind=Session.bind) > > > > log.info("Successfully setup") > > > > > When I run "$ paster setup-app development.ini" command, I get the > > > > following error: > > > > > sqlalchemy.exc.UnboundExecutionError: The MetaData is not bound to an > > > > Engine or Connection. Execution can not proceed without a database to > > > > execute against. Either execute with an explicit connection or assign > > > > the MetaData's .bind to enable implicit execution. > > > > > I am using a MySQL server running on an Ubuntu machine to try out the > > > > example. > > > > > Does anybody know why I am getting the error? -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
