Last active
September 2, 2015 12:13
-
-
Save piotr-dobrogost/b529e7914c0f90921551 to your computer and use it in GitHub Desktop.
Error when trying to version Node table in Kotti using SQLAlchemy-Continuum
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/kotti/resources.py b/kotti/resources.py | |
index e771ebe..3723732 100644 | |
--- a/kotti/resources.py | |
+++ b/kotti/resources.py | |
@@ -69,6 +69,11 @@ from kotti.util import Link | |
from kotti.util import LinkParent | |
from kotti.util import LinkRenderer | |
+from sqlalchemy_continuum import make_versioned | |
+ | |
+ | |
+make_versioned(user_cls='Principal') | |
+ | |
class ContainerMixin(object, DictMixin): | |
""" Containers form the API of a Node that's used for subitem | |
@@ -206,6 +211,7 @@ class Node(Base, ContainerMixin, PersistentACLMixin): | |
implements(INode) | |
+ __versioned__ = {} | |
__table_args__ = ( | |
UniqueConstraint('parent_id', 'name'), | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(env)[piotr@demon kotti-versioning]$ ./env/bin/pserve app.ini | |
Traceback (most recent call last): | |
File "./env/bin/pserve", line 11, in <module> | |
sys.exit(main()) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/pyramid/scripts/pserve.py", line 58, in main | |
return command.run() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/pyramid/scripts/pserve.py", line 328, in run | |
global_conf=vars) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/pyramid/scripts/pserve.py", line 363, in loadapp | |
return loadapp(app_spec, name=name, relative_to=relative_to, **kw) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp | |
return loadobj(APP, uri, name=name, **kw) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj | |
return context.create() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create | |
return self.object_type.invoke(self) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 203, in invoke | |
app = context.app_context.create() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create | |
return self.object_type.invoke(self) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 146, in invoke | |
return fix_call(context.object, context.global_conf, **context.local_conf) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/paste/deploy/util.py", line 55, in fix_call | |
val = callable(*args, **kw) | |
File "/home/piotr/projects/kotti-versioning/kotti/__init__.py", line 179, in main | |
initialize_sql(engine) | |
File "/home/piotr/projects/kotti-versioning/kotti/resources.py", line 848, in initialize_sql | |
populate() | |
File "/home/piotr/projects/kotti-versioning/kotti/populate.py", line 45, in populate | |
if DBSession.query(Node.id).count() == 0: | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/scoping.py", line 150, in do | |
return getattr(self.registry(), name)(*args, **kwargs) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1249, in query | |
return self._query_cls(entities, self, **kwargs) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 110, in __init__ | |
self._set_entities(entities) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 120, in _set_entities | |
self._set_entity_selectables(self._entities) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 137, in _set_entity_selectables | |
ext_info.mapper._equivalent_columns | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 153, in _mapper_loads_polymorphically_with | |
for m2 in mapper._with_polymorphic_mappers or [mapper]: | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 747, in __get__ | |
obj.__dict__[self.__name__] = result = self.fget(obj) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 1893, in _with_polymorphic_mappers | |
configure_mappers() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 2736, in configure_mappers | |
Mapper.dispatch._for_class(Mapper).after_configured() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/event/attr.py", line 218, in __call__ | |
fn(*args, **kw) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/events.py", line 550, in wrap | |
fn(*arg, **kw) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy_continuum/builder.py", line 165, in configure_versioned_classes | |
self.build_models() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy_continuum/builder.py", line 87, in build_models | |
self.manager.transaction_cls | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy_continuum/model_builder.py", line 263, in __call__ | |
self.version_class = self.build_model(table) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy_continuum/model_builder.py", line 250, in build_model | |
args | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/api.py", line 55, in __init__ | |
_as_declarative(cls, classname, cls.__dict__) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 88, in _as_declarative | |
_MapperConfig.setup_mapping(cls, classname, dict_) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 103, in setup_mapping | |
cfg_cls(cls_, classname, dict_) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 135, in __init__ | |
self._early_mapping() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 138, in _early_mapping | |
self.map() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 529, in map | |
**self.mapper_args | |
File "<string>", line 2, in mapper | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 627, in __init__ | |
self._configure_properties() | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 1318, in _configure_properties | |
setparent=True) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 1525, in _configure_property | |
prop = self._property_from_column(key, prop) | |
File "/home/piotr/projects/kotti-versioning/env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 1650, in _property_from_column | |
raise sa_exc.InvalidRequestError(msg) | |
sqlalchemy.exc.InvalidRequestError: Implicitly combining column contents_version.transaction_id with column nodes_version.transaction_id under attribute 'transaction_id'. Please configure one or more attributes for these same-named columns explicitly. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment