Upgrade from 4.34 to 4.35
Linux migration
For Linux deployment you need to update docker containers, their environment variables and execute database migration.
Update images version
When using pre-configured SmartFace deployment from our github, open .env file and the SF_VERSION, so the versions match:
SF_VERSION=v5_4.35.0
AC_VERSION=v5_1.14.0
SFS_VERSION=v5_1.31.1
1. Run upgrade scripts
Execute run.sh script shipped in our default deployment. In case you have custom deployment where you cannot use our pre-build script, call database upgrade manually. Please replace variables --rmq-* with your current configuration.
For MSSQL execute
docker run --rm --name admin_migration --volume $(pwd)/iengine.lic:/etc/innovatrics/iengine.lic --network sf-network ${SF_ADMIN_IMAGE} \
run-migration \
-p "$(getvalue CameraServicesCount)" \
-c "$(getvalue ConnectionStrings__CoreDbContext)" -dbe $DB_ENGINE \
--tenant-id default \
--rmq-host "$(getvalue RabbitMQ__Hostname)" --rmq-user "$(getvalue RabbitMQ__Username)" --rmq-pass "$(getvalue RabbitMQ__Password)" \
--rmq-virtual-host "$(getvalue RabbitMQ__VirtualHost)" --rmq-port "$(getvalue RabbitMQ__Port)" --rmq-streams-port "$(getvalue RabbitMQ__StreamsPort)" --rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" \
--dependencies-availability-timeout 120
For PostgreSQL execute
docker run --rm --name admin_migration --volume $(pwd)/iengine.lic:/etc/innovatrics/iengine.lic --network sf-network ${SF_ADMIN_IMAGE} \
run-migration \
-p "$(getvalue CameraServicesCount)" \
-c "$(getvalue ConnectionStrings__CoreDbContext)" -dbe $DB_ENGINE \
--tenant-id default \
--rmq-host "$(getvalue RabbitMQ__Hostname)" --rmq-user "$(getvalue RabbitMQ__Username)" --rmq-pass "$(getvalue RabbitMQ__Password)" \
--rmq-virtual-host "$(getvalue RabbitMQ__VirtualHost)" --rmq-port "$(getvalue RabbitMQ__Port)" --rmq-streams-port "$(getvalue RabbitMQ__StreamsPort)" --rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" \
--dependencies-availability-timeout 120
2. Run palm migrations commands
These are only example commands from public github repository that needs to be run. To run it manually requires some prerequisities:
- Stop all compose services
- Spawn
palm-detectorservices - Spawn
palm-extractorservices - Run
sf_adminimage withmigrate-palmscmd - Run
sf_adminimage withset-state-error-non-migrated-palmscmd
Example migrate-palms command from github repo
docker run --rm --name sf_admin \
--volume "$(pwd)/iengine.lic:/etc/innovatrics/iengine.lic" \
--network sf-network \
"${SF_ADMIN_IMAGE}" \
migrate-palms \
-c "$(getvalue ConnectionStrings__CoreDbContext)" \
-dbe "$(getvalue Database__DbEngine)" \
-rmq-host "$(getvalue RabbitMQ__Hostname)" \
-rmq-user "$(getvalue RabbitMQ__Username)" \
-rmq-pass "$(getvalue RabbitMQ__Password)" \
-rmq-vhost "$(getvalue RabbitMQ__VirtualHost)" \
-rmq-p "$(getvalue RabbitMQ__Port)" \
-rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" \
-s3-e "$(getvalue S3Bucket__Endpoint)" \
-s3-bn "$(getvalue S3Bucket__BucketName)" \
-s3-ak "$(getvalue S3Bucket__AccessKey)" \
-s3-sk "$(getvalue S3Bucket__SecretKey)" \
-s3-f "$(getvalue S3Bucket__Folder)" \
--parallelism 4
Example set-state-error-non-migrated-palms command from github repo to finalize palm templates that were not migrated by setting them to error state.
docker run --rm --name sf_admin \
--volume "$(pwd)/iengine.lic:/etc/innovatrics/iengine.lic" \
--network sf-network \
"${SF_ADMIN_IMAGE}" \
set-state-error-non-migrated-palms \
-c "$(getvalue ConnectionStrings__CoreDbContext)" \
-dbe "$(getvalue Database__DbEngine)"
3. Watchlist synchronization
This version also requires watchlist update log stream repopulation.
docker run --rm --name admin-stream-gen --network sf-network $(getvalue REGISTRY)sf-admin:$(getvalue SF_VERSION) \
populate-wl-update-log-stream \
-c "$(getvalue ConnectionStrings__CoreDbContext)" \
-dbe $(getvalue Database__DbEngine) \
--rmq-host "$(getvalue RabbitMQ__Hostname)" --rmq-user "$(getvalue RabbitMQ__Username)" --rmq-pass "$(getvalue RabbitMQ__Password)" \
--rmq-virtual-host "$(getvalue RabbitMQ__VirtualHost)" --rmq-port "$(getvalue RabbitMQ__Port)" --rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" --rmq-streams-port "$(getvalue RabbitMQ__StreamsPort)"