RE: [sqlalchemy] Re: sqlalchemy.exc.NoReferencedTableError: Could not find table with which to generate a foreign key

2011-03-30 Thread King Simon-NFHD78
This is just the way Python works - code inside a module is only
executed when that module is imported. If you don't import
myapp.models.notes, then the class definitions never get executed.

One solution is to import all the sub-modules in your bootstrap.py
before calling create_all. Another is importing the submodules inside
the myapp/models/__init__.py

Hope that helps,

Simon 

-Original Message-
From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com]
On Behalf Of eric cire
Sent: 30 March 2011 14:57
To: sqlalchemy
Subject: [sqlalchemy] Re: sqlalchemy.exc.NoReferencedTableError: Could
not find table with which to generate a foreign key

After investigating further, i have the impression that the problem
occurs when models are in different modules (notes.py  users.py in this
case) but if the models are in the same module eg.
myapp.models.__init__.py, the tables are created.

I'd still like to know why this is happening because i don't intend to
put al my models in the same module..

Thanks,


On Wed, Mar 30, 2011 at 3:36 PM, 371c 371c@gmail.com wrote:


Hi,

I have the following setup:

myapp.models.notes.py
Note model defined here using declarative base

myapp.models.users.py
User model defined here using declarative base

myapp.models.meta.py
Base and DBSession defined here to avoid circular imports...

myapp.lib.bootstrap.py
Called to initialize the database with some initial data. The
following is done:
create an engine (sqlite:///notes.db)
call Base.create_all(bind=engine)

The Base class is the same for the models and the bootstrap.py
module,
but i still get a noreferencedtableerror...

it basically doesn't create the database tables when
bootstrap.py is
called..

Any ideas ?

Regards,








-- 
You received this message because you are subscribed to the Google
Groups sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



RE: [sqlalchemy] Re: sqlalchemy.exc.NoReferencedTableError: Could not find table with which to generate a foreign key

2011-03-30 Thread King Simon-NFHD78
Something else must be importing those modules when run from pylons. If you 
really want to know how they are getting imported, stick something in the 
module which will raise an exception when it is imported (eg type blah blah 
blah at the top of the module) and look at the traceback.

Cheers,

Simon

-Original Message-
From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com] On 
Behalf Of 371c
Sent: 30 March 2011 16:00
To: sqlalchemy
Subject: [sqlalchemy] Re: sqlalchemy.exc.NoReferencedTableError: Could not find 
table with which to generate a foreign key

Actually that helps alot and i had infact resolved to  and was in the
process of doing so  (i know that about python modules.. ;) but i
might be missing something)

But, why does this work in the context of an application (eg. pylons
app). Basically, calling Base.create_all() in some init_db method of
an application
works without having to import all the modules in, say,
myapp.models.__init__.py

Suggestions are welcome, though i'm considering the question answered

Thanks alot and Regards,


On Mar 30, 4:39 pm, King Simon-NFHD78
simon.k...@motorolasolutions.com wrote:
 This is just the way Python works - code inside a module is only
 executed when that module is imported. If you don't import
 myapp.models.notes, then the class definitions never get executed.

 One solution is to import all the sub-modules in your bootstrap.py
 before calling create_all. Another is importing the submodules inside
 the myapp/models/__init__.py

 Hope that helps,

 Simon

 -Original Message-
 From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com]

 On Behalf Of eric cire
 Sent: 30 March 2011 14:57
 To: sqlalchemy
 Subject: [sqlalchemy] Re: sqlalchemy.exc.NoReferencedTableError: Could
 not find table with which to generate a foreign key

 After investigating further, i have the impression that the problem
 occurs when models are in different modules (notes.py  users.py in this
 case) but if the models are in the same module eg.
 myapp.models.__init__.py, the tables are created.

 I'd still like to know why this is happening because i don't intend to
 put al my models in the same module..

 Thanks,

 On Wed, Mar 30, 2011 at 3:36 PM, 371c 371c@gmail.com wrote:

         Hi,

         I have the following setup:

         myapp.models.notes.py
         Note model defined here using declarative base

         myapp.models.users.py
         User model defined here using declarative base

         myapp.models.meta.py
         Base and DBSession defined here to avoid circular imports...

         myapp.lib.bootstrap.py
         Called to initialize the database with some initial data. The
         following is done:
         create an engine (sqlite:///notes.db)
         call Base.create_all(bind=engine)

         The Base class is the same for the models and the bootstrap.py
 module,
         but i still get a noreferencedtableerror...

         it basically doesn't create the database tables when
 bootstrap.py is
         called..

         Any ideas ?

         Regards,

 --
 You received this message because you are subscribed to the Google
 Groups sqlalchemy group.
 To post to this group, send email to sqlalchemy@googlegroups.com.
 To unsubscribe from this group, send email to
 sqlalchemy+unsubscr...@googlegroups.com.
 For more options, visit this group 
 athttp://groups.google.com/group/sqlalchemy?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.