Thanks for making concrete-datastore available, it looks like an interesting project.
concrete-datastore makemigrations
concrete_datastore.parsers.exceptions.DuplicatedRelationForModel: [DUPLICATED_RELATION]: Relation duplicated in one_to_many_relations from "Project" to "User" for field "manager" Please remove the duplicated relations to make sure only one exists.
Without being too sure of the significance of what I was doing I attempted to follow the error message direction and so removed one of the two one-to-many relations from "Project" to "User" for field "Manager". I then tried running
concrete-datastore makemigrations
again. This resulted in a different error message
concrete_datastore.parsers.exceptions.MissingRelationForModel: [MISSING_RELATION]: Missing many_to_many_relations from Group to User for field "members". Please add it to many_to_many_relations section of your datamodel.
Now even less sure of the significance of what I was doing I followed the directions of the error message and added a many to many relation from Group to User for field "members" as shown below :
many_to_many_relations:
- source_field: groups
source_model:
uid: 9a820c34-d618-48cb-b08d-0dc37a3ca26a
name: Project
target_model:
uid: 87a72328-6efc-49d6-9941-d46042c080fd
name: Group
- source_field: members
source_model:
uid: 87a72328-6efc-49d6-9941-d46042c080fd
name: Group
target_model:
uid: 8dde7da5-3a0a-42a7-b579-390cd686b3fd
name: User
concrete-datastore makemigrations
again. This resulted in an error but not with a structured error message as before but just a plain old traceback as shown below
Traceback (most recent call last):
File "/home/rshea/Envs/py37conc/bin/concrete-datastore", line 11, in <module>
load_entry_point('concrete-datastore', 'console_scripts', 'concrete-datastore')()
File "/home/rshea/src/concrete-sandbox/concrete-datastore/development/cli.py", line 18, in django
execute_from_command_line(sys.argv)
File "/home/rshea/Envs/py37conc/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/home/rshea/Envs/py37conc/lib/python3.7/site-packages/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/home/rshea/Envs/py37conc/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/rshea/Envs/py37conc/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/home/rshea/Envs/py37conc/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/concrete/models.py", line 30, in <module>
from concrete_datastore.concrete.meta import (
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/concrete/meta.py", line 89, in <module>
meta_models = loads_meta(settings.META_MODEL_DEFINITIONS) + loads_meta(
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/loaders.py", line 40, in loads_meta
return load_func(model_definitions)
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/loaders.py", line 25, in loads_models_v1
return modelisation.get_meta_models() # pylint: disable=no-member
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 271, in get_meta_models
model_resource_queries,
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 284, in make_model_cls
model_uid=spec['uid'],
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 318, in make_field_cls
model_uid=model_uid,
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 436, in make_cls
resource_queries=resource_queries,
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 371, in update_specifier_data
target_model_uid=attributes['to'][self.element_id],
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 167, in get_relation_for_field
relations[f_type],
File "/home/rshea/src/concrete-sandbox/concrete-datastore/concrete_datastore/parsers/meta.py", line 166, in <lambda>
and x['target_model'][self.element_id] == target_model_uid,
I've now decided that it would be better to see if anyone could offer some advice before going any further.
I will attach the most recent version of the datamodel I've been using to this ticket as an update in just a few moments