Can someone point me to the attribute chain that would let me reach the
Declarative class for a given table object??
In other words, using the args passed to this function:
@event.listens_for(Column, "before_parent_attach")
def attach(colObj, tableObj):
prefix = tableObj.name[0:4]
colObj.name = "%s%s" % (prefix, colObj.name)
how can I access the Declarative class that is responsible for creating
this table in the first place....
that class contains an attribute I need to read but I cannot find where it
lives on either the column or table objects being passed into the
event-handler.
I'm assuming it's via the metadata key but having no luck finding it
there.....
Thanks,
Dewey
On Tuesday, December 23, 2014 at 5:07:34 PM UTC-6, Dewey Gaedcke wrote:
>
> Is it likely that this construct:
>
> @event.listens_for(Column, "before_parent_attach")
> def attach(target, cls):
> # cls is the table obj, not the declarative class
> target.name = "%s%s" % (cls.name[0:4], target.name)
>
>
> is interfering with Alembic??
>
> I'm getting this stack trace and it changes if I disable the event
> listener above.
>
> I don't actually have any columns named "cat_cat_sit_id" so it looks like
> that prefix is being double attached???
>
> Thanks for any suggestions to fix this.
> Dewey
>
> INFO [alembic.autogenerate.compare] Detected added foreign key
> (ctr_gem_id)(ctr_gem_id) on table cat_ctr_att
>
> INFO [alembic.autogenerate.compare] Detected added foreign key
> (dtw_id)(dtw_id) on table cat_ctr_att
>
> INFO [alembic.autogenerate.compare] Detected added foreign key
> (sit_id)(sit_id) on table cat_ctr_att
>
> Traceback (most recent call last):
>
> File "/Users/dgaedcke/Virtualenvs/paysys/bin/alembic", line 9, in
> <module>
>
> load_entry_point('alembic==0.7.2', 'console_scripts', 'alembic')()
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/config.py",
>
> line 399, in main
>
> CommandLine(prog=prog).main(argv=argv)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/config.py",
>
> line 393, in main
>
> self.run_cmd(cfg, options)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/config.py",
>
> line 376, in run_cmd
>
> **dict((k, getattr(options, k)) for k in kwarg)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/command.py",
>
> line 113, in revision
>
> script.run_env()
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/script.py",
>
> line 382, in run_env
>
> util.load_python_file(self.dir, 'env.py')
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/util.py",
>
> line 241, in load_python_file
>
> module = load_module_py(module_id, path)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/compat.py",
>
> line 79, in load_module_py
>
> mod = imp.load_source(module_id, path, fp)
>
> File "alembic/env.py", line 74, in <module>
>
> run_migrations_online()
>
> File "alembic/env.py", line 67, in run_migrations_online
>
> context.run_migrations()
>
> File "<string>", line 7, in run_migrations
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/environment.py",
>
> line 742, in run_migrations
>
> self.get_context().run_migrations(**kw)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/migration.py",
>
> line 296, in run_migrations
>
> for step in self._migrations_fn(heads, self):
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/command.py",
>
> line 95, in retrieve_migrations
>
> autogen._produce_migration_diffs(context, template_args, imports)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/autogenerate/api.py",
>
> line 145, in _produce_migration_diffs
>
> autogen_context, object_filters, include_schemas)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/autogenerate/api.py",
>
> line 247, in _produce_net_changes
>
> inspector, metadata, diffs, autogen_context)
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/autogenerate/compare.py",
>
> line 118, in _compare_tables
>
> inspector)
>
> File
> "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py",
>
> line 24, in __exit__
>
> self.gen.next()
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/alembic/autogenerate/compare.py",
>
> line 208, in _compare_columns
>
> if _run_filters(conn_table.c[cname], cname,
>
> File
> "/Users/dgaedcke/Virtualenvs/paysys/lib/python2.7/site-packages/sqlalchemy/util/_collections.py",
>
> line 157, in __getitem__
>
> return self._data[key]
>
> KeyError: u'cat_cat_sit_id'
>
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.