[sqlalchemy] Re: sqlalchemy reflection
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
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
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
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
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
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
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
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
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
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
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
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 -~--~~~~--~~--~--~---