Upgrade from 4.28 to 4.29
Once you obtain your new license apply the license as per documentation for Windows and Linux.
Windows migration
For Windows deployment migration, simply run the standard SmartFace Platform installer. The wizard run re-creates all required services, updates binaries and executables and executes the database updates as well.
Linux migration
For Linux deployment you need to update docker containers, their environment variables and execute database migration.
Update container 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.29.0
AC_VERSION=v5_1.13.0
SFS_VERSION=v5_1.29.0
When directly referencing image, update every path to match version above:
version: "3.4"
services:
sf-base:
image: registry.gitlab.com/innovatrics/smartface/sf-base:v5_4.29.0
container_name: SFBase
command: --serviceName SFBase
ports:
- 2406:2406
restart: unless-stopped
environment:
- RabbitMQ__Hostname
- RabbitMQ__Username
...
Update docker containers definition
In your docker-compose.yml
or corresponding container definition file make the below mentioned updates:
Add new palm related services
Add the lines below to add new services
palm-detector:
image: ${REGISTRY}sf-palm-detector:${SF_VERSION}
container_name: SFPalmDetectCpu
labels:
application: smartface
restart: unless-stopped
environment:
- RabbitMQ__Hostname
- RabbitMQ__Username
- RabbitMQ__Password
- RabbitMQ__Port
- RabbitMQ__VirtualHost
- RabbitMQ__UseSsl
- AppSettings__Log_RollingFile_Enabled=false
- AppSettings__Log_JsonConsole_Enabled
- AppSettings__USE_JAEGER_APP_SETTINGS
- JAEGER_AGENT_HOST
volumes:
- ./iengine.lic:/etc/innovatrics/iengine.lic
palm-extractor:
image: ${REGISTRY}sf-palm-extractor:${SF_VERSION}
container_name: SFPalmExtractCpu
labels:
application: smartface
restart: unless-stopped
environment:
- RabbitMQ__Hostname
- RabbitMQ__Username
- RabbitMQ__Password
- RabbitMQ__Port
- RabbitMQ__VirtualHost
- RabbitMQ__UseSsl
- AppSettings__Log_RollingFile_Enabled=false
- AppSettings__Log_JsonConsole_Enabled
- AppSettings__USE_JAEGER_APP_SETTINGS
- JAEGER_AGENT_HOST
volumes:
- ./iengine.lic:/etc/innovatrics/iengine.lic
Add license volume to the SmartFace Station
Add the lines below to add license volume for the SmartFace Station:
volumes:
- ./iengine.lic:/etc/innovatrics/iengine.lic
So the SmartFace Station definition would look like below:
sf-station:
image: ${REGISTRY}sf-station:${SFS_VERSION}
container_name: SFStation
restart: unless-stopped
ports:
- 8000:8000
env_file: .env.sfstation
volumes:
- ./iengine.lic:/etc/innovatrics/iengine.lic
Update Environment Variables
Open .env.sfstation
file and add the lines below to set license file path for the SmartFace Station, so the SmartFace Station can see and read the license file.
# License file path
LICENSE_FILE_PATH="/etc/innovatrics/iengine.lic"
Run upgrade scripts
Simply 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