Add versions 6.x to an existing SIM server
This document explains how to add versions 6.x to an existing SIM server.
Install versions 6.x
Login as user simplicite.
Clone the version 6 template Git repository:
cd /var/simplicite/git
git clone --bare https://_your_Git_username_:_your_Git_password_@platform.git.simplicite.io/template-6.git
Warning: make sure to change
_your_Git_username_and_your_Git_password_by your own Git credentials
Create the version 6.x (current and maintained) minor versions in the SIM database (note: version 6.0 is now outdated, thus not mentioned here any longer):
sql "insert into versions values ('6.1', '1970-01-01 00:00:00')"
sql "insert into versions values ('6.2', '1970-01-01 00:00:00')"
And optionally their "light" variants:
sql "insert into versions values ('6.1l', '1970-01-01 00:00:00')"
sql "insert into versions values ('6.2l', '1970-01-01 00:00:00')"
Add the post receive hook for the template:
vi template-6.git/hooks/post-receive
With the following content:
#!/bin/bash
for branch in 6.1 6.2
# or for branch in 6.1 6.1-light 6.2 6.2-light
do
version=$branch
[ $branch = '6.1-light' -o $branch = '6.2-light' ] && version=${version}l
echo "Updating version $version template (branch $branch)..."
rm -fr /var/simplicite/template-$version
mkdir /var/simplicite/template-$version
git --work-tree=/var/simplicite/template-$version --git-dir=/var/simplicite/git/template-6.git checkout -f $branch
if [ $? = 0 ]
then
chmod +x /var/simplicite/template-$version/tools/*.sh
date=`git --git-dir=/var/simplicite/git/template-6.git log -1 --date=iso | awk '/^Date:/ { print $2" "$3 }'`
echo "Last commit date: $date"
sqlite3 /var/simplicite/data/apps.db "update versions set date = '$date' where version = '$version'"
echo "Done"
else
echo "${branch} not (yet) available in /var/simplicite/git/template-6.git"
fi
done
Note: All variants of version 6 may not be required in the above steps; the commands and scripts can be adapted as necessary.
Make it executable:
chmod +x template-6.git/hooks/post-receive
Execute it:
./template-6.git/hooks/post-receive
Edit the post receive hook for the instance manager:
vi apps.git/hooks/post-receive
with the following content (keep the previous versions' parts if needed):
#!/bin/bash
echo "Updating instances manager..."
sudo su simplicite -c "git --work-tree=/var/simplicite/apps --git-dir=/var/simplicite/git/apps.git checkout -f master"
for branch in 6.1 6.2
# or for v in 6.1 6.1-light 6.2 6.2-light
do
version=$branch
[ $branch = '6.1-light' -o $branch = '6.2-light' ] && version=${version}l
cat /var/simplicite/apps/bin/version-6.sh | sed "s/template-6/template-$version/g" > /var/simplicite/apps/bin/version-$version.sh
done
sudo chmod +x /var/simplicite/apps/bin/*.sh
sudo su simplicite -c "touch /var/simplicite/logs/apps.log"
sudo chmod 660 /var/simplicite/logs/apps.log
echo "Done"
Make it executable:
chmod +x apps.git/hooks/post-receive
Execute it:
./apps.git/hooks/post-receive
Verify installation
At this stage, the version 6 templates should be available in the /var/simplicite/template-6* folders.
And a call to sim versions should display version 6 templates with their latest revision dates, e.g.:
> sim versions
(...)
6.1 2025-03-28 15:54:10
6.2 2025-03-28 16:15:22
(...)
Create new version 6 instances
Version 6 instances can now be created:
sim add <new instance name> 6.2
Upgrade existing version 5 instances
Optionally, existing 5 instances may be switched to version 6 with:
sim setversion <instance name> 6.2
or for more selective/specific cases:
sql "update instances set version='6.2' where <condition>"
where <condition> can be, for instance, name like 'myoldinstance%', etc.
Then force an upgrade on all switched instances:
for i in `sim ls 5 | awk '{print $1}`; do echo sim up $i; done
Warning: note that :
- switching from version 5 to any version 6.x is irreversible
- switching from version 5 to any version 6.x is impossible if the version 5 is not up-to date on the latest version 5 revision