Skip to content

Parsing 'TIMESTAMP WITH TIME ZONE' #60

@mimo00

Description

@mimo00

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 ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions