Note: These features are only available to select people who oversee the OED site (called admins) so these features are not usually of interest to a general user.
To upgrade the app:
package.json
file in
the root directory of OED. All the officially released and tagged versions is given on the OED GitHub
release page. You probably want the most recent version but certainly one that is later than what
you currently have (OED cannot migrate to a previous version and can only upgrade).docker compose exec database pg_dump -U oed > dump_$(date +%Y-%m-%d"_"%H_%M_%S.sql)
. It will
create a file name starting with dump_
, then have the date & time and finally have the
.sql
file extension. This file should have the needed commands to recreate the database if
something should go wrong. You can delete this file once you are sure the upgrade was completely successful
if you want to save disk space. You can contact the OED project if you need to restore the database due to
issues.
systemctl stop oed.service
. This assumes you named the
service oed.service as is the default in the installation directions. You can check the status of the
service with systemctl list-units --type=service | grep -i oed
where it will not be listed if
it is stopped. Note this means that the OED
website/service is no longer available. It will not be permanently available again until you restart the OED
service at the
end of this process.git stash
git fetch --tags
.git checkout <tag_name>
where you
replace <tag_name> with the tagged version you want. For example, to go to v0.7.0 use
git checkout v0.7.0
.
git stash pop
. You will see messages including about
Changes not staged for commit:
. This is okay since you are not going to commit these changes
back to the OED repository (you are actually in a detached head git state). It is unlikely that git cannot
put back your local changes. If you get merge warnings then see if the named file has lines with multiple
"<<<<" and ">>>>" in a row. If so, then there were merge conflicts. You can try to
edit the
file to decide which of the listed lines you need. You are also encouraged to contact the OED project for
help with this situation.
docker compose run --rm web src/scripts/updateOED.sh
. This will reinstall the node packages
because there are usually changes, update the database for the new version of OED and then build the new
application. At the start you will see "NPM ci to upgrade the packages..." and this can take a while to
complete. Next you should see "NPM install finished." followed by "Attempting to migrate database to latest
version...". Finally it will do "Doing docker compose up --no-start --build to capture any changes needed
for images/containers without starting...". If all does well you will see "webpack 5.67.0 compiled
successfully" followed by "OED upgrade completed".
Certain upgrade are failing for unknown reasons upgrade. If this happens, do the following:
docker container ls
-a
. You don't want to accidentally remove another docker container. There should be one
with oed_web and one oed_database (or similar names). The OED containers should not be currently
running so they should have "Exited" as the "STATUS". The first column listed should be "CONTAINER
ID". For each CONTAINER ID, do: docker container rm <CONTAINER ID>
. The
response should be an echo of the <CONTAiNER ID>. If you list the containers again these
should be
gone. At this point you should be able If you have any issues or questions then please don't
hesitate to reach out to the
project.
docker compose up
. This is the same step as the original build from
the first OED installation but will likely happen faster since the OED software was updated above. See the
OED installation page for further information. Once complete, you
should then be able to access OED via a web browser
to see it is running properly and has all the data and settings you had before the upgrade. Doing it outside
the Unix service makes it easier to see any issues during the build steps. Once you complete this step then
do "^c" in the terminal where you did the docker compose up
to shut down OED. Be a little
patient since doing a second "^c" will cause a rapid stop of docker without the normal cleanup.
systemctl start oed.service
.