Thanks, I should have tried that first - it works perfectly in 0.6. On Mar 8, 4:42 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote: > Grimsqueaker wrote: > > I am trying to reflect a table from a database and use > > table.tometadata() to copy it into an identical database. This usually > > works, but when I try to call table.create() on a certain new table, I > > get a ProgrammingError. I can see that this may be due the fact that > > the server_default on one of the columns has been double quoted. Can > > anyone point me in the right direction to reflect / create this table > > properly? > > it sounds like a bug we fixed in 0.6 so you might want to try 0.6. > > > > > Below is the traceback I got. Note the quotes around the > > server_default for the "date" column - it has two single quotes, not > > double quotes. The tables that worked did not have this. > > > 2010-03-08 12:44:45,205 INFO sqlalchemy.engine.threadlocal.TLEngine. > > 0x...0b50 DESCRIBE `radpostauth` > > INFO:sqlalchemy.engine.threadlocal.TLEngine.0x...0b50:DESCRIBE > > `radpostauth` > > 2010-03-08 12:44:45,205 INFO sqlalchemy.engine.threadlocal.TLEngine. > > 0x...0b50 () > > INFO:sqlalchemy.engine.threadlocal.TLEngine.0x...0b50:() > > 2010-03-08 12:44:45,217 INFO sqlalchemy.engine.threadlocal.TLEngine. > > 0x...0b50 ROLLBACK > > INFO:sqlalchemy.engine.threadlocal.TLEngine.0x...0b50:ROLLBACK > > 2010-03-08 12:44:45,220 INFO sqlalchemy.engine.threadlocal.TLEngine. > > 0x...0b50 > > CREATE TABLE radpostauth ( > > id INTEGER(11) NOT NULL AUTO_INCREMENT, > > user VARCHAR(64) DEFAULT '' NOT NULL, > > pass VARCHAR(64) DEFAULT '' NOT NULL, > > reply VARCHAR(32) DEFAULT '' NOT NULL, > > date TIMESTAMP DEFAULT ''0000-00-00 00:00:00'' NOT NULL, > > PRIMARY KEY (id) > > ) > > > INFO:sqlalchemy.engine.threadlocal.TLEngine.0x...0b50: > > CREATE TABLE radpostauth ( > > id INTEGER(11) NOT NULL AUTO_INCREMENT, > > user VARCHAR(64) DEFAULT '' NOT NULL, > > pass VARCHAR(64) DEFAULT '' NOT NULL, > > reply VARCHAR(32) DEFAULT '' NOT NULL, > > date TIMESTAMP DEFAULT ''0000-00-00 00:00:00'' NOT NULL, > > PRIMARY KEY (id) > > ) > > > 2010-03-08 12:44:45,220 INFO sqlalchemy.engine.threadlocal.TLEngine. > > 0x...0b50 () > > INFO:sqlalchemy.engine.threadlocal.TLEngine.0x...0b50:() > > 2010-03-08 12:44:45,221 INFO sqlalchemy.engine.threadlocal.TLEngine. > > 0x...0b50 ROLLBACK > > INFO:sqlalchemy.engine.threadlocal.TLEngine.0x...0b50:ROLLBACK > > 2010-03-08 12:44:45,221 INFO sqlalchemy.pool.QueuePool.0x...0a50 > > Connection <_mysql.connection open to 'localhost' at 202c050> being > > returned to pool > > INFO:sqlalchemy.pool.QueuePool.0x...0a50:Connection <_mysql.connection > > open to 'localhost' at 202c050> being returned to pool > > Traceback (most recent call last): > > File "db.py", line 142, in <module> > > copy_schema() > > File "db.py", line 106, in copy_schema > > dsttable.create(checkfirst=True) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/schema.py", line 381, in create > > self.metadata.create_all(bind=bind, checkfirst=checkfirst, > > tables=[self]) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/schema.py", line 1796, in create_all > > bind.create(self, checkfirst=checkfirst, tables=tables) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 1129, in create > > self._run_visitor(self.dialect.schemagenerator, entity, > > connection=connection, **kwargs) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 1158, in _run_visitor > > visitorcallable(self.dialect, conn, **kwargs).traverse(element) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/sql/visitors.py", line 89, in traverse > > return traverse(obj, self.__traverse_options__, > > self._visitor_dict) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/sql/visitors.py", line 200, in traverse > > return traverse_using(iterate(obj, opts), obj, visitors) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/sql/visitors.py", line 194, in traverse_using > > meth(target) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/sql/compiler.py", line 831, in visit_metadata > > self.traverse_single(table) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/sql/visitors.py", line 79, in traverse_single > > return meth(obj) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/sql/compiler.py", line 870, in visit_table > > self.execute() > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 1812, in execute > > return self.connection.execute(self.buffer.getvalue()) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 824, in execute > > return Connection.executors[c](self, object, multiparams, params) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 888, in _execute_text > > return self.__execute_context(context) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 896, in __execute_context > > self._cursor_execute(context.cursor, context.statement, > > context.parameters[0], context=context) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 950, in _cursor_execute > > self._handle_dbapi_exception(e, statement, parameters, cursor, > > context) > > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.5.6- > > py2.6.egg/sqlalchemy/engine/base.py", line 931, in > > _handle_dbapi_exception > > raise exc.DBAPIError.instance(statement, parameters, e, > > connection_invalidated=is_disconnect) > > sqlalchemy.exc.ProgrammingError: (ProgrammingError) (1064, "You have > > an error in your SQL syntax; check the manual that corresponds to your > > MySQL server version for the right syntax to use near '0000-00-00 > > 00:00:00'' NOT NULL, \n\tPRIMARY KEY (id)\n)' at line 6") u"\nCREATE > > TABLE radpostauth (\n\tid INTEGER(11) NOT NULL AUTO_INCREMENT, \n > > \tuser VARCHAR(64) DEFAULT '' NOT NULL, \n\tpass VARCHAR(64) DEFAULT > > '' NOT NULL, \n\treply VARCHAR(32) DEFAULT '' NOT NULL, \n\tdate > > TIMESTAMP DEFAULT ''0000-00-00 00:00:00'' NOT NULL, \n\tPRIMARY KEY > > (id)\n)\n\n" () > > > -- > > 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.