On 4/20/15 7:11 PM, Dewey Gaedcke wrote:
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.....
that's not tracked because it is entirely possible to map many classes
to just one Table. You would need to add something special to your
Table here when you define the class; a good place would be to use the
table.info dictionary.
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 <http://target.name> = "%s%s" % (cls.name
<http://cls.name>[0:4], target.name <http://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 sqlalchemy-alembic+unsubscr...@googlegroups.com
<mailto:sqlalchemy-alembic+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.
--
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 sqlalchemy-alembic+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.