...
When we are ready to migrate, we need to contact DataCite and set up an hour or so of time where we migrate from their service to our service. The most simple best time to do this would probably be when we migrate stacks.
In Synapse Stack Builder
In elasticbeanstalk-template.json.vpt, set mid-week, during working hours, with critical people actively taking part in the process. This way, if the new DOI service does not work/something is broken, we will be ready to quickly fix it.
Detailed Migration Plan
Prior to migration
- Set up a branch on web client that will put the new DOI service out of alpha mode.
- Set up a branch (probably just need to pull into the release build) on stack builder that will change
org.sagebionetworks.doi.prefix
to be "10.7303"
...
In PLFM
In stack.properties, set "
org.sagebionetworks.doi.prefix=10.7303
"- In /lib/jdomodels/src/main/java/org/sagebionetworks/repo/model/dbo/dao/DoiUtils.java, change
DoiStatus.TEMPORARY
toDoiStatus.READY
- Make the same change in the corresponding test,
DoiUtilsTest.testConvertV2ToDbo
- Make the same change in the corresponding test,
- (Optionally) delete all of the rows in the DOI table where
DoiStatus
isTEMPORARY
- Deprecate the old DOI controller methods so the old API cannot be used. (Give a message indicating that the API has been deprecated, instead of registering a new DOI call)
In SWC
- Remove the old DOI widget from the EntityMetadata page
- In the EntityActionController:
- Remove the old
createDoi
method - Remove the alpha flag from the
createOrUpdateDoi
method
- Remove the old
After the dust settles:
- (If not done earlier) delete all database entries in the DOI table where DoiStatus is
TEMPORARY
- Remove all of the unused and deprecated EZID code in PLFM and SWC!(elasticbeanstalk-template.json.vpt)
- Set up a '-1' build for the portal and repo that uses the artifacts from steps
During 1-hr migration window
- Confirm with DataCite that we are ready and they are ready to migrate
- Monitor/test the '-1' build to see if we can create a DOI with the new services
- This may not succeed until migration is complete
- Once a DOI is successfully created in '-1', change the CNAMES to make '-1' go live (Xa)
After migration
- Confirm that DOIs can be made on prod (using new system)
- Pull in changes that remove dead code.
- The above PRs remove dead code in the portal and stack builder
- https://github.com/Sage-Bionetworks/Synapse-Repository-Services/pull/3431
That should conclude migration