[sqlalchemy] Re: sqlalchemy reflection

2010-04-01 Thread Tan Yi
After 6 hours of searching and debugging,finally figured out the
permission needed for table reflection, those are:
   "select", and "connect replication"
for ORM to work, you need one more:
   "Alter any schema"
to do add() or delete() you obviously need more permission,
respectively.
Those are specific permissions under MS Sql server 2005.

When doing reflection and orm mapping, did not see any exception
regarding permissions.

Anyway, thank you Michael. You info helps.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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 reflection

2010-04-01 Thread Michael Bayer
Tan Yi wrote:
> Don't want to reask, but help me please.
> Can somebody tell me what kind of permission (in terms of ms sql
> server) do I need in order to do table reflection?
> Thank you!


if your application is forbidding it, SQL Server should be dumping an
error indicating what specific table requires what permissions.  But in
general the user needs SELECT permission on the relevant
"INFORMATION_SCHEMA" schema.




>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@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 sqlalch...@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.



[sqlalchemy] Re: sqlalchemy reflection

2010-04-01 Thread Tan Yi
Don't want to reask, but help me please.
Can somebody tell me what kind of permission (in terms of ms sql
server) do I need in order to do table reflection?
Thank you!

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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.



[sqlalchemy] Re: sqlalchemy reflection

2010-04-01 Thread Tan Yi
Wondering if I need the creating table, or creating views  priviledge
to reflect tables.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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.



[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-04 Thread Mike Driscoll

Hi Simon and Michael,

On Jun 4, 8:03 am, "King Simon-NFHD78" 
wrote:
> Mike Driscoll wrote:
>
> > Well, I did the fake id column because SA was throwing an error on a
> > the reflected table since it didn't have a primary key defined. I
> > think I may have found a workaround though.
>
> From SA's point of view, the primary key just has to be a set of columns
> that uniquely identify a row in the database. It doesn't explicitly have
> to be defined as a primary key in the database.
>
> The reason for this is that if you retrieve an object (a row) from the
> database and modify it, there is no way to save those changes back to
> the database unless you can uniquely identify that row, so you know what
> to put in the WHERE clause of the UPDATE statement.
>
> If there really isn't a set of columns that uniquely identifies a row in
> the database, and you only want read-only support, you might be able to
> tell SA that the primary key is made up of all the columns in the table.
> However, if there are any duplicate rows in the table, SA will only
> return a single object for those rows because it has no way of knowing
> that they are different.
>
> If you do have duplicate rows, you might be better working with the
> SQL-only layer of SA, rather than the ORM.
>
> Simon

It turns out that my ultimate issue was myself. I had our db admin
(i.e. my boss) look at it and he quickly found that while my username
had access to the database, it did not have access to that particular
table. This caused autoload to report that the table did not exist AND
if I set a primary key and disabled autoload, it made SA spit out a
SELECT permission error.

I apologize for the noise. So much to learn...so little time.

- Mike
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-04 Thread King Simon-NFHD78

Mike Driscoll wrote:
> 
> Well, I did the fake id column because SA was throwing an error on a
> the reflected table since it didn't have a primary key defined. I
> think I may have found a workaround though.

>From SA's point of view, the primary key just has to be a set of columns
that uniquely identify a row in the database. It doesn't explicitly have
to be defined as a primary key in the database.

The reason for this is that if you retrieve an object (a row) from the
database and modify it, there is no way to save those changes back to
the database unless you can uniquely identify that row, so you know what
to put in the WHERE clause of the UPDATE statement.

If there really isn't a set of columns that uniquely identifies a row in
the database, and you only want read-only support, you might be able to
tell SA that the primary key is made up of all the columns in the table.
However, if there are any duplicate rows in the table, SA will only
return a single object for those rows because it has no way of knowing
that they are different.

If you do have duplicate rows, you might be better working with the
SQL-only layer of SA, rather than the ORM.

Simon

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-04 Thread Mike Driscoll

Well, I did the fake id column because SA was throwing an error on a
the reflected table since it didn't have a primary key defined. I
think I may have found a workaround though.

Thanks for the help.

Mike

On Jun 3, 5:05 pm, "Michael Bayer"  wrote:
> i don't see what the purpose of a "fake id column" serves here.  you can
> make a Table object and place within it as many actual columns as you
> want, including primary key columns.   if the table name is truly all
> uppercase, then you need to name it that way in the Table object.
>
> Mike Driscoll wrote:
>
> > Hi,
>
> > Actually, that was just a placeholder name since I'm not sure that my
> > employer would like me sticking my tables online. Anyway, the
> > tablename in Microsoft's Enterprise Manager shows it as being all
> > lowercase although when I run queries against it in MS Query Analyzer,
> > it uses all uppercase.
>
> > All the column names in the table are in uppercase and there are no
> > foreign keys. The vendor also didn't bother setting a primary key.
>
> > So, I decided to try accessing the table without autoload. Since there
> > are quite a few columns, I thought I'd also try grabbing only the
> > columns I wanted. For a simple test, I did this:
>
> > test_tbl = Table("tablename", metadata,
> >                  Column('id', Integer, primary_key=True),
> >                  Column("CYCLE_CODE", String))
>
> > Unfortunately, MSSQL is reporting that my fake primary key column is
> > invalid. Is there a workaround? Do I need to recreate all the Columns
> > in a Table object and also in my class definition?
>
> > Sorry for all the trouble.
>
> > Mike
>
> > On Jun 3, 3:48 pm, "Michael Bayer"  wrote:
> >> tableTwo is a case sensitive name so must be spelled out with that exact
> >> case.   in particular if your database is returning foreign key names
> >> without proper case sensitivity then issues will occur with this.  turn
> >> echo='debug' to see all SQL emitted and result sets returned.
>
> >> Mike Driscoll wrote:
>
> >> > Hi,
>
> >> > That fixed that issue. However, now I'm getting an error that my 2nd
> >> > table doesn't exist:
>
> >> > sqlalchemy.exc.NoSuchTableError: tableTwo
>
> >> > This is weird since it's been around since 2007 and has lots of data
> >> > in it. I tried changing the name to all lowercase and all uppercase,
> >> > but the error remains the same. I also tried removing the schema line
> >> > to no avail.
>
> >> > Here's the complete traceback:
>
> >> > File "D:\pyRetention\Scripts\paster", line 5, in 
> >> >   pkg_resources.run_script('pastescript==1.7.3', 'paster')
> >> > File "c:\Python25\Lib\site-packages\pkg_resources.py", line 448, in
> >> > run_script
> >> >   self.require(requires)[0].run_script(script_name, ns)
> >> > File "c:\Python25\Lib\site-packages\pkg_resources.py", line 1166, in
> >> > run_script
> >> >   execfile(script_filename, namespace, namespace)
> >> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\EGG-
> >> > INFO\scripts\paster", line 18, in 
> >> >   command.run()
> >> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> >> > \script\command.py", line 84, in run
> >> >   invoke(command, command_name, options, args[1:])
> >> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> >> > \script\command.py", line 123, in invoke
> >> >   exit_code = runner.run(args)
> >> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> >> > \script\command.py", line 218, in run
> >> >   result = self.command()
> >> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> >> > \script\serve.py", line 276, in command
> >> >   relative_to=base, global_conf=vars)
> >> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> >> > \script\serve.py", line 313, in loadapp
> >> >   **kw)
> >> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> >> > \deploy\loadwsgi.py", line 204, in loadapp
> >> >   return loadobj(APP, uri, name=name, **kw)
> >> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> >> > \deploy\loadwsgi.py", line 225, in loadobj
> >> >   return context.create()
> >> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> >> > \deploy\loadwsgi.py", line 625, in create
> >> >   return self.object_type.invoke(self)
> >> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> >> > \deploy\loadwsgi.py", line 110, in invoke
> >> >   return fix_call(context.object, context.global_conf,
> >> > **context.local_conf)
> >> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> >> > \deploy\util\fixtypeerror.py", line 57, in fix_call
> >> >   val = callable(*args, **kw)
> >> > File "D:\pyRetention\pyRetention\pyretention\config\middleware.py",
> >> > line 35, in make_app
> >> >   app = make_base_app(global_conf, full_stack=True, **app_conf)
> >> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg

[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-03 Thread Michael Bayer


i don't see what the purpose of a "fake id column" serves here.  you can
make a Table object and place within it as many actual columns as you
want, including primary key columns.   if the table name is truly all
uppercase, then you need to name it that way in the Table object.


Mike Driscoll wrote:
>
> Hi,
>
> Actually, that was just a placeholder name since I'm not sure that my
> employer would like me sticking my tables online. Anyway, the
> tablename in Microsoft's Enterprise Manager shows it as being all
> lowercase although when I run queries against it in MS Query Analyzer,
> it uses all uppercase.
>
> All the column names in the table are in uppercase and there are no
> foreign keys. The vendor also didn't bother setting a primary key.
>
> So, I decided to try accessing the table without autoload. Since there
> are quite a few columns, I thought I'd also try grabbing only the
> columns I wanted. For a simple test, I did this:
>
> test_tbl = Table("tablename", metadata,
>  Column('id', Integer, primary_key=True),
>  Column("CYCLE_CODE", String))
>
> Unfortunately, MSSQL is reporting that my fake primary key column is
> invalid. Is there a workaround? Do I need to recreate all the Columns
> in a Table object and also in my class definition?
>
> Sorry for all the trouble.
>
> Mike
>
>
>
> On Jun 3, 3:48 pm, "Michael Bayer"  wrote:
>> tableTwo is a case sensitive name so must be spelled out with that exact
>> case.   in particular if your database is returning foreign key names
>> without proper case sensitivity then issues will occur with this.  turn
>> echo='debug' to see all SQL emitted and result sets returned.
>>
>> Mike Driscoll wrote:
>>
>> > Hi,
>>
>> > That fixed that issue. However, now I'm getting an error that my 2nd
>> > table doesn't exist:
>>
>> > sqlalchemy.exc.NoSuchTableError: tableTwo
>>
>> > This is weird since it's been around since 2007 and has lots of data
>> > in it. I tried changing the name to all lowercase and all uppercase,
>> > but the error remains the same. I also tried removing the schema line
>> > to no avail.
>>
>> > Here's the complete traceback:
>>
>> > File "D:\pyRetention\Scripts\paster", line 5, in 
>> >   pkg_resources.run_script('pastescript==1.7.3', 'paster')
>> > File "c:\Python25\Lib\site-packages\pkg_resources.py", line 448, in
>> > run_script
>> >   self.require(requires)[0].run_script(script_name, ns)
>> > File "c:\Python25\Lib\site-packages\pkg_resources.py", line 1166, in
>> > run_script
>> >   execfile(script_filename, namespace, namespace)
>> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\EGG-
>> > INFO\scripts\paster", line 18, in 
>> >   command.run()
>> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
>> > \script\command.py", line 84, in run
>> >   invoke(command, command_name, options, args[1:])
>> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
>> > \script\command.py", line 123, in invoke
>> >   exit_code = runner.run(args)
>> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
>> > \script\command.py", line 218, in run
>> >   result = self.command()
>> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
>> > \script\serve.py", line 276, in command
>> >   relative_to=base, global_conf=vars)
>> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
>> > \script\serve.py", line 313, in loadapp
>> >   **kw)
>> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
>> > \deploy\loadwsgi.py", line 204, in loadapp
>> >   return loadobj(APP, uri, name=name, **kw)
>> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
>> > \deploy\loadwsgi.py", line 225, in loadobj
>> >   return context.create()
>> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
>> > \deploy\loadwsgi.py", line 625, in create
>> >   return self.object_type.invoke(self)
>> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
>> > \deploy\loadwsgi.py", line 110, in invoke
>> >   return fix_call(context.object, context.global_conf,
>> > **context.local_conf)
>> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
>> > \deploy\util\fixtypeerror.py", line 57, in fix_call
>> >   val = callable(*args, **kw)
>> > File "D:\pyRetention\pyRetention\pyretention\config\middleware.py",
>> > line 35, in make_app
>> >   app = make_base_app(global_conf, full_stack=True, **app_conf)
>> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
>> > \configuration.py", line 588, in make_base_app
>> >   load_environment(global_conf, app_conf)
>> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
>> > \configuration.py", line 438, in load_environment
>> >   self.setup_sqlalchemy()
>> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
>> > \configuration.py", line 393, in setup_sqlalchemy
>> >   self.package.model.ini

[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-03 Thread Mike Driscoll

Hi,

Actually, that was just a placeholder name since I'm not sure that my
employer would like me sticking my tables online. Anyway, the
tablename in Microsoft's Enterprise Manager shows it as being all
lowercase although when I run queries against it in MS Query Analyzer,
it uses all uppercase.

All the column names in the table are in uppercase and there are no
foreign keys. The vendor also didn't bother setting a primary key.

So, I decided to try accessing the table without autoload. Since there
are quite a few columns, I thought I'd also try grabbing only the
columns I wanted. For a simple test, I did this:

test_tbl = Table("tablename", metadata,
 Column('id', Integer, primary_key=True),
 Column("CYCLE_CODE", String))

Unfortunately, MSSQL is reporting that my fake primary key column is
invalid. Is there a workaround? Do I need to recreate all the Columns
in a Table object and also in my class definition?

Sorry for all the trouble.

Mike



On Jun 3, 3:48 pm, "Michael Bayer"  wrote:
> tableTwo is a case sensitive name so must be spelled out with that exact
> case.   in particular if your database is returning foreign key names
> without proper case sensitivity then issues will occur with this.  turn
> echo='debug' to see all SQL emitted and result sets returned.
>
> Mike Driscoll wrote:
>
> > Hi,
>
> > That fixed that issue. However, now I'm getting an error that my 2nd
> > table doesn't exist:
>
> > sqlalchemy.exc.NoSuchTableError: tableTwo
>
> > This is weird since it's been around since 2007 and has lots of data
> > in it. I tried changing the name to all lowercase and all uppercase,
> > but the error remains the same. I also tried removing the schema line
> > to no avail.
>
> > Here's the complete traceback:
>
> > File "D:\pyRetention\Scripts\paster", line 5, in 
> >   pkg_resources.run_script('pastescript==1.7.3', 'paster')
> > File "c:\Python25\Lib\site-packages\pkg_resources.py", line 448, in
> > run_script
> >   self.require(requires)[0].run_script(script_name, ns)
> > File "c:\Python25\Lib\site-packages\pkg_resources.py", line 1166, in
> > run_script
> >   execfile(script_filename, namespace, namespace)
> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\EGG-
> > INFO\scripts\paster", line 18, in 
> >   command.run()
> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> > \script\command.py", line 84, in run
> >   invoke(command, command_name, options, args[1:])
> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> > \script\command.py", line 123, in invoke
> >   exit_code = runner.run(args)
> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> > \script\command.py", line 218, in run
> >   result = self.command()
> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> > \script\serve.py", line 276, in command
> >   relative_to=base, global_conf=vars)
> > File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> > \script\serve.py", line 313, in loadapp
> >   **kw)
> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> > \deploy\loadwsgi.py", line 204, in loadapp
> >   return loadobj(APP, uri, name=name, **kw)
> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> > \deploy\loadwsgi.py", line 225, in loadobj
> >   return context.create()
> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> > \deploy\loadwsgi.py", line 625, in create
> >   return self.object_type.invoke(self)
> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> > \deploy\loadwsgi.py", line 110, in invoke
> >   return fix_call(context.object, context.global_conf,
> > **context.local_conf)
> > File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> > \deploy\util\fixtypeerror.py", line 57, in fix_call
> >   val = callable(*args, **kw)
> > File "D:\pyRetention\pyRetention\pyretention\config\middleware.py",
> > line 35, in make_app
> >   app = make_base_app(global_conf, full_stack=True, **app_conf)
> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
> > \configuration.py", line 588, in make_base_app
> >   load_environment(global_conf, app_conf)
> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
> > \configuration.py", line 438, in load_environment
> >   self.setup_sqlalchemy()
> > File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
> > \configuration.py", line 393, in setup_sqlalchemy
> >   self.package.model.init_model(engine)
> > File "d:\pyRetention\pyRetention\pyretention\model\__init__.py", line
> > 70, in init_model
> >   autoload=True, autoload_with=engine)
> > File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
> > \sqlalchemy\schema.py", line 113, in __call__
> >   return type.__call__(self, name, metadata, *args, **kwargs)
> > File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
> > \sqlalchemy\schem

[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-03 Thread Michael Bayer

tableTwo is a case sensitive name so must be spelled out with that exact
case.   in particular if your database is returning foreign key names
without proper case sensitivity then issues will occur with this.  turn
echo='debug' to see all SQL emitted and result sets returned.



Mike Driscoll wrote:
>
> Hi,
>
> That fixed that issue. However, now I'm getting an error that my 2nd
> table doesn't exist:
>
> sqlalchemy.exc.NoSuchTableError: tableTwo
>
> This is weird since it's been around since 2007 and has lots of data
> in it. I tried changing the name to all lowercase and all uppercase,
> but the error remains the same. I also tried removing the schema line
> to no avail.
>
> Here's the complete traceback:
>
> File "D:\pyRetention\Scripts\paster", line 5, in 
>   pkg_resources.run_script('pastescript==1.7.3', 'paster')
> File "c:\Python25\Lib\site-packages\pkg_resources.py", line 448, in
> run_script
>   self.require(requires)[0].run_script(script_name, ns)
> File "c:\Python25\Lib\site-packages\pkg_resources.py", line 1166, in
> run_script
>   execfile(script_filename, namespace, namespace)
> File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\EGG-
> INFO\scripts\paster", line 18, in 
>   command.run()
> File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> \script\command.py", line 84, in run
>   invoke(command, command_name, options, args[1:])
> File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> \script\command.py", line 123, in invoke
>   exit_code = runner.run(args)
> File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> \script\command.py", line 218, in run
>   result = self.command()
> File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> \script\serve.py", line 276, in command
>   relative_to=base, global_conf=vars)
> File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
> \script\serve.py", line 313, in loadapp
>   **kw)
> File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> \deploy\loadwsgi.py", line 204, in loadapp
>   return loadobj(APP, uri, name=name, **kw)
> File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> \deploy\loadwsgi.py", line 225, in loadobj
>   return context.create()
> File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> \deploy\loadwsgi.py", line 625, in create
>   return self.object_type.invoke(self)
> File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> \deploy\loadwsgi.py", line 110, in invoke
>   return fix_call(context.object, context.global_conf,
> **context.local_conf)
> File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
> \deploy\util\fixtypeerror.py", line 57, in fix_call
>   val = callable(*args, **kw)
> File "D:\pyRetention\pyRetention\pyretention\config\middleware.py",
> line 35, in make_app
>   app = make_base_app(global_conf, full_stack=True, **app_conf)
> File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
> \configuration.py", line 588, in make_base_app
>   load_environment(global_conf, app_conf)
> File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
> \configuration.py", line 438, in load_environment
>   self.setup_sqlalchemy()
> File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
> \configuration.py", line 393, in setup_sqlalchemy
>   self.package.model.init_model(engine)
> File "d:\pyRetention\pyRetention\pyretention\model\__init__.py", line
> 70, in init_model
>   autoload=True, autoload_with=engine)
> File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
> \sqlalchemy\schema.py", line 113, in __call__
>   return type.__call__(self, name, metadata, *args, **kwargs)
> File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
> \sqlalchemy\schema.py", line 239, in __init__
>   autoload_with.reflecttable(self, include_columns=include_columns)
> File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
> \sqlalchemy\engine\base.py", line 1265, in reflecttable
>   self.dialect.reflecttable(conn, table, include_columns)
> File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
> \sqlalchemy\databases\mssql.py", line 1255, in reflecttable
>   raise exc.NoSuchTableError(table.name)
>
>
> What do you think? MS SQL being stupid? Thanks for your help.
>
> - Mike
>
>
> On Jun 3, 2:51 pm, "Michael Bayer"  wrote:
>> the MSSQL has had a lot of fixes over the course of 0.5 so definitely
>> get
>> on the latest 0.5 first.
>>
>> Mike wrote:
>>
>> > Hi,
>>
>> > I am working on a TurboGears 2 application that uses SqlAlchemy 0.5.1.
>> > I am using reflection and am having a lot of trouble with it. Anyway,
>> > here's the error I am getting:
>>
>> > Traceback (most recent call last):
>> >   File "V:\PythonPackages\Development\pyRetention\Scripts\paster-
>> > script.py", line 8, in 
>> >     load_entry_point('pastescript==1.7.3', 'console_scripts',
>> 'paster')
>> > ()
>> >   File "v:\pythonpackages\development\py

[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-03 Thread Mike Driscoll

Hi,

That fixed that issue. However, now I'm getting an error that my 2nd
table doesn't exist:

sqlalchemy.exc.NoSuchTableError: tableTwo

This is weird since it's been around since 2007 and has lots of data
in it. I tried changing the name to all lowercase and all uppercase,
but the error remains the same. I also tried removing the schema line
to no avail.

Here's the complete traceback:

File "D:\pyRetention\Scripts\paster", line 5, in 
  pkg_resources.run_script('pastescript==1.7.3', 'paster')
File "c:\Python25\Lib\site-packages\pkg_resources.py", line 448, in
run_script
  self.require(requires)[0].run_script(script_name, ns)
File "c:\Python25\Lib\site-packages\pkg_resources.py", line 1166, in
run_script
  execfile(script_filename, namespace, namespace)
File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\EGG-
INFO\scripts\paster", line 18, in 
  command.run()
File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
\script\command.py", line 84, in run
  invoke(command, command_name, options, args[1:])
File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
\script\command.py", line 123, in invoke
  exit_code = runner.run(args)
File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
\script\command.py", line 218, in run
  result = self.command()
File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
\script\serve.py", line 276, in command
  relative_to=base, global_conf=vars)
File "c:\Python25\Lib\site-packages\pastescript-1.7.3-py2.5.egg\paste
\script\serve.py", line 313, in loadapp
  **kw)
File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
\deploy\loadwsgi.py", line 204, in loadapp
  return loadobj(APP, uri, name=name, **kw)
File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
\deploy\loadwsgi.py", line 225, in loadobj
  return context.create()
File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
\deploy\loadwsgi.py", line 625, in create
  return self.object_type.invoke(self)
File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
\deploy\loadwsgi.py", line 110, in invoke
  return fix_call(context.object, context.global_conf,
**context.local_conf)
File "c:\Python25\Lib\site-packages\pastedeploy-1.3.3-py2.5.egg\paste
\deploy\util\fixtypeerror.py", line 57, in fix_call
  val = callable(*args, **kw)
File "D:\pyRetention\pyRetention\pyretention\config\middleware.py",
line 35, in make_app
  app = make_base_app(global_conf, full_stack=True, **app_conf)
File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
\configuration.py", line 588, in make_base_app
  load_environment(global_conf, app_conf)
File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
\configuration.py", line 438, in load_environment
  self.setup_sqlalchemy()
File "c:\Python25\Lib\site-packages\turbogears2-2.0-py2.5.egg\tg
\configuration.py", line 393, in setup_sqlalchemy
  self.package.model.init_model(engine)
File "d:\pyRetention\pyRetention\pyretention\model\__init__.py", line
70, in init_model
  autoload=True, autoload_with=engine)
File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
\sqlalchemy\schema.py", line 113, in __call__
  return type.__call__(self, name, metadata, *args, **kwargs)
File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
\sqlalchemy\schema.py", line 239, in __init__
  autoload_with.reflecttable(self, include_columns=include_columns)
File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
\sqlalchemy\engine\base.py", line 1265, in reflecttable
  self.dialect.reflecttable(conn, table, include_columns)
File "c:\Python25\Lib\site-packages\sqlalchemy-0.5.4p2-py2.5.egg
\sqlalchemy\databases\mssql.py", line 1255, in reflecttable
  raise exc.NoSuchTableError(table.name)


What do you think? MS SQL being stupid? Thanks for your help.

- Mike


On Jun 3, 2:51 pm, "Michael Bayer"  wrote:
> the MSSQL has had a lot of fixes over the course of 0.5 so definitely get
> on the latest 0.5 first.
>
> Mike wrote:
>
> > Hi,
>
> > I am working on a TurboGears 2 application that uses SqlAlchemy 0.5.1.
> > I am using reflection and am having a lot of trouble with it. Anyway,
> > here's the error I am getting:
>
> > Traceback (most recent call last):
> >   File "V:\PythonPackages\Development\pyRetention\Scripts\paster-
> > script.py", line 8, in 
> >     load_entry_point('pastescript==1.7.3', 'console_scripts', 'paster')
> > ()
> >   File "v:\pythonpackages\development\pyretention\lib\site-packages
> > \pastescript-1.7.3-py2.5.egg\past
> > e\script\command.py", line 84, in run
> >     invoke(command, command_name, options, args[1:])
> >   File "v:\pythonpackages\development\pyretention\lib\site-packages
> > \pastescript-1.7.3-py2.5.egg\past
> > e\script\command.py", line 123, in invoke
> >     exit_code = runner.run(args)
> >   File "v:\pythonpackages\development\pyretention\lib\site-packages
> > \pastescript-1.7.3-py2.5.egg\past
> > e\script\appinstall.py", l

[sqlalchemy] Re: SqlAlchemy reflection error in TurboGears 2

2009-06-03 Thread Michael Bayer

the MSSQL has had a lot of fixes over the course of 0.5 so definitely get
on the latest 0.5 first.


Mike wrote:
>
> Hi,
>
> I am working on a TurboGears 2 application that uses SqlAlchemy 0.5.1.
> I am using reflection and am having a lot of trouble with it. Anyway,
> here's the error I am getting:
>
>
> Traceback (most recent call last):
>   File "V:\PythonPackages\Development\pyRetention\Scripts\paster-
> script.py", line 8, in 
> load_entry_point('pastescript==1.7.3', 'console_scripts', 'paster')
> ()
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\command.py", line 84, in run
> invoke(command, command_name, options, args[1:])
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\command.py", line 123, in invoke
> exit_code = runner.run(args)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\appinstall.py", line 68, in run
> return super(AbstractInstallCommand, self).run(new_args)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\command.py", line 218, in run
> result = self.command()
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\appinstall.py", line 456, in command
> self, config_file, section, self.sysconfig_install_vars
> (installer))
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\appinstall.py", line 598, in setup_config
> mod.setup_app, command, filename, section, vars)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \pastescript-1.7.3-py2.5.egg\past
> e\script\appinstall.py", line 612, in _call_setup_app
> func(command, conf, vars)
>   File "D:\pyRetention\pyRetention\pyretention\websetup.py", line 18,
> in setup_app
> load_environment(conf.global_conf, conf.local_conf)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \turbogears2-2.0-py2.5.egg\tg\con
> figuration.py", line 438, in load_environment
> self.setup_sqlalchemy()
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \turbogears2-2.0-py2.5.egg\tg\con
> figuration.py", line 393, in setup_sqlalchemy
> self.package.model.init_model(engine)
>   File "D:\pyRetention\pyRetention\pyretention\model\__init__.py",
> line 64, in init_model
> autoload_with=engine)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \sqlalchemy-0.5.1-py2.5.egg\sqlal
> chemy\schema.py", line 113, in __call__
> return type.__call__(self, name, metadata, *args, **kwargs)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \sqlalchemy-0.5.1-py2.5.egg\sqlal
> chemy\schema.py", line 239, in __init__
> autoload_with.reflecttable(self, include_columns=include_columns)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \sqlalchemy-0.5.1-py2.5.egg\sqlal
> chemy\engine\base.py", line 1265, in reflecttable
> self.dialect.reflecttable(conn, table, include_columns)
>   File "v:\pythonpackages\development\pyretention\lib\site-packages
> \sqlalchemy-0.5.1-py2.5.egg\sqlal
> chemy\databases\mssql.py", line 1157, in reflecttable
> coltype = coltype(*args, **kwargs)
> TypeError: __init__() takes at most 2 arguments (3 given)
>
>
> I'm not sure what it is talking about. Here are my sample tables
> though:
>
>
> tbl_checks = Table("tableOne", metadata, autoload=True,
>autoload_with=engine)
> mapper(Checks, tbl_checks)
>
> tbl_test = Table("tableTwo", metadata, autoload=True,
>  autoload_with=engine,
>  schema="DBName.dbo")
> mapper(Test, tbl_test)
>
>
> My databases were provided by a vendor and are on Microsoft SQL Server
> 2000. By analyzing my code in WingWare's debugger, it looks like the
> first table is getting reflected correctly in the line
> "self.dialect.reflecttable(conn, table, include_columns)" at least.
>
> Any pointers would be great. I am using Python 2.5 if that matters.
>
> Thanks!
>
> Mike
> >
>


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---