datajoint-python
datajoint-python copied to clipboard
Add non-primary foreign key using alter() method
Feature Request
Problem
It would be helpful to be able to modify existing tables to have references to upstream tables. For example
@schema
class SpikeSortingParameters(dj.Manual):
definition = """
# Table for holding parameters for each spike sorting run
-> SortGroup
-> SpikeSorterParameters
-> SortInterval
---
-> SpikeSortingMetrics
-> IntervalList
import_path = '': varchar(200) # optional path to previous curated sorting output
"""
is our starting schema, and we'd like to add
-> SpikeSortingArtifactParameters
as a non-primary foreign key. We could have an empty set of parameters for already sorted data, and this would allow us to modify our current pipeline for future sortings.
Requirements
This would seem to require modifying the alter() method to allow initialization based on a particular foreign key.
Justification
This would provide useful additional flexibility when working on
Thanks for opening this @lfrank. Included this in the milestone for our next release.
@guzman-raphael It would be great if one could use alter
to not only add but also to remove an existing foreign key from a table. Right now trying to do so leads to the same error: NotImplementedError: table.alter cannot alter foreign keys (yet).