Open lfrank opened 1 month ago
sql
files that could be loaded into any database, including lines that drop existing tables to redefine themsql
files with some sed
/awk
operations to remove DROP
statements and change CREATE
to CREATE IF NOT EXISTS
Some questions come to mind regarding data integrity ...
Any monitoring of the ingestion process to resolve collisions is going to be a major lift of parsing error messages from SQL, which DataJoint is better equipped for than Spyglass (maybe worth a feature request from them?). A skilled user could manage these decisions working with SQL directly, but I'm not confident in our ability to do it programmatically in Python. A featurefull approach might be an effort on par with expanding DataJoint by 30% to handle all possible error codes and reverting on fail.
An alternate approach might look more like a 'replication tool' that exported a spec of paramsets to run, and then applied them to a different database. This would require rerunning all computations, but it would allow datajoint and/or the end-user to handle collisions one-by-one
Great points, and indeed the replication tool might be by far the best way to approach this given all the challenges. Let's discuss when you're back in town.
It seems possible (perhaps likely?) that different groups will have their own databases, but would like to be able to import a set of analyses / results from another group. This could be something like issue #861 but with a provision to transfer entries to a different database.
There are multiple complexities here, but if this were possible it might be that it would be really useful.