|
|
@ -50,3 +50,63 @@ $MASTER_BASE_SERVICE_NAME: |
|
|
|
labels: |
|
|
|
- compose.config_hash=$config_hash |
|
|
|
" |
|
|
|
|
|
|
|
ensure_db_docker_running |
|
|
|
|
|
|
|
|
|
|
|
## ReplicaSet initialization |
|
|
|
|
|
|
|
cmd="rs.initiate({ _id: 'rs01', members: [ { _id: 0, host: '$SERVICE_NAME:27017' } ]})" |
|
|
|
debug "${WHITE}running:$NORMAL $cmd" |
|
|
|
|
|
|
|
out=$(ddb <<<"$cmd") |
|
|
|
|
|
|
|
if [[ "$out" == *"\"codeName\" : \"AlreadyInitialized\""* ]]; then |
|
|
|
info "ReplicaSet already initialized." |
|
|
|
elif [[ "$out" == *"\"ok\" : 1"* ]]; then |
|
|
|
info "ReplicaSet initialized. " |
|
|
|
else |
|
|
|
err "ReplicaSet initialisation failed:" |
|
|
|
echo "$out" >&2 |
|
|
|
exit 13 |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
## Enable read if db version >= 4.2 |
|
|
|
|
|
|
|
if ! version=$(mongo:db:version); then |
|
|
|
err "Couldn't get database version" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
echo "Current mongo database version: '$version'." >&2 |
|
|
|
|
|
|
|
if version_gt "$version" 4.1; then |
|
|
|
cmd="db.getMongo().setSecondaryOk()" |
|
|
|
debug "${WHITE}running:$NORMAL $cmd" |
|
|
|
|
|
|
|
out=$(ddb <<<"$cmd") || { |
|
|
|
err "Failed database command. Output:" |
|
|
|
echo "$out" | prefix " | " >&2 |
|
|
|
exit 1 |
|
|
|
} |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
## This is some sort of migrating code and should be moved to upgrade |
|
|
|
## directory. |
|
|
|
|
|
|
|
major_version=${version%.*} |
|
|
|
|
|
|
|
cmd="db.adminCommand( { setFeatureCompatibilityVersion: \"${major_version}\" } )" |
|
|
|
debug "${WHITE}running:$NORMAL $cmd" |
|
|
|
|
|
|
|
out=$(ddb <<<"$cmd") |
|
|
|
if [[ "$out" == *"\"ok\" : 1"* ]]; then |
|
|
|
info "Feature Compatibility set to ${major_version}. " |
|
|
|
else |
|
|
|
err "Failed to set feature compatibility version failed:" |
|
|
|
echo "$out" | prefix " | " >&2 |
|
|
|
exit 13 |
|
|
|
fi |