-
Notifications
You must be signed in to change notification settings - Fork 62
Parsing 'TIMESTAMP WITH TIME ZONE' #60
Description
Hi !
I have a bug while migration with alembic. I try to add column to table:
class Events(db.Base):
tablename = 'events'
id = sqlalchemy.Column(sqlalchemy.INTEGER(), primary_key=True)
type_ = sqlalchemy.Column(sqlalchemy.TEXT(), index=True, nullable=False)
timestamp = sqlalchemy.Column(sqlalchemy.TIMESTAMP(timezone=True), index=True, nullable=False)
data = sqlalchemy.Column(sqlalchemy.JSON())
__table_args__ = (sqlalchemy.Index('ix_events_data', data, postgresql_using="gin"),)
and Traceback:
File "/usr/local/bin/alembic", line 11, in
load_entry_point('alembic==0.9.10', 'console_scripts', 'alembic')()
File "/usr/local/lib/python3.6/site-packages/alembic/config.py", line 486, in main
CommandLine(prog=prog).main(argv=argv)
File "/usr/local/lib/python3.6/site-packages/alembic/config.py", line 480, in main
self.run_cmd(cfg, options)
File "/usr/local/lib/python3.6/site-packages/alembic/config.py", line 463, in run_cmd
**dict((k, getattr(options, k, None)) for k in kwarg)
File "/usr/local/lib/python3.6/site-packages/alembic/command.py", line 176, in revision
script_directory.run_env()
File "/usr/local/lib/python3.6/site-packages/alembic/script/base.py", line 427, in run_env
util.load_python_file(self.dir, 'env.py')
File "/usr/local/lib/python3.6/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
module = load_module_py(module_id, path)
File "/usr/local/lib/python3.6/site-packages/alembic/util/compat.py", line 83, in load_module_py
spec.loader.exec_module(module)
File "", line 678, in exec_module
File "", line 219, in _call_with_frames_removed
File "dispatcher/alembic/env.py", line 44, in
run_migrations_online()
File "dispatcher/alembic/env.py", line 38, in run_migrations_online
context.run_migrations()
File "", line 8, in run_migrations
File "/usr/local/lib/python3.6/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
self.get_context().run_migrations(**kw)
File "/usr/local/lib/python3.6/site-packages/alembic/runtime/migration.py", line 321, in run_migrations
for step in self._migrations_fn(heads, self):
File "/usr/local/lib/python3.6/site-packages/alembic/command.py", line 156, in retrieve_migrations
revision_context.run_autogenerate(rev, context)
File "/usr/local/lib/python3.6/site-packages/alembic/autogenerate/api.py", line 415, in run_autogenerate
self._run_environment(rev, migration_context, True)
File "/usr/local/lib/python3.6/site-packages/alembic/autogenerate/api.py", line 451, in _run_environment
autogen_context, migration_script)
File "/usr/local/lib/python3.6/site-packages/alembic/autogenerate/compare.py", line 22, in _populate_migration_script
_produce_net_changes(autogen_context, upgrade_ops)
File "/usr/local/lib/python3.6/site-packages/alembic/autogenerate/compare.py", line 48, in _produce_net_changes
autogen_context, upgrade_ops, schemas
File "/usr/local/lib/python3.6/site-packages/alembic/util/langhelpers.py", line 313, in go
fn(*arg, **kw)
File "/usr/local/lib/python3.6/site-packages/alembic/autogenerate/compare.py", line 75, in _autogen_for_tables
inspector, upgrade_ops, autogen_context)
File "/usr/local/lib/python3.6/site-packages/alembic/autogenerate/compare.py", line 168, in _compare_tables
inspector.reflecttable(t, None)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/reflection.py", line 618, in reflecttable
table_name, schema, **table.dialect_kwargs):
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/reflection.py", line 369, in get_columns
**kw)
File "/usr/local/lib/python3.6/site-packages/cockroachdb/sqlalchemy/dialect.py", line 113, in get_columns
typ = sqltypes.NULLTYPE()
TypeError: 'NullType' object is not callable
Warning is SAWarning: Could not parse type name 'TIMESTAMP WITH TIME ZONE'
The problem is while calling def get_columns with regex m = re.match(r'^(\w+)(?:(([0-9, ]*)))?$', type_str). Is it a bug and I can create PR ? Or is sm not yet supported ?