2021-09-12 22:13:26 -05:00
|
|
|
# Upgrade iRedMail from 1.4.1 to 1.4.2
|
|
|
|
|
|
|
|
[TOC]
|
|
|
|
|
|
|
|
!!! note "Paid Remote Upgrade Support"
|
|
|
|
|
|
|
|
We offer remote upgrade support if you don't want to get your hands dirty,
|
|
|
|
check [the details](https://www.iredmail.org/support.html) and
|
|
|
|
[contact us](https://www.iredmail.org/contact.html).
|
|
|
|
|
|
|
|
## ChangeLog
|
|
|
|
|
|
|
|
* Sep 13, 2021: Initial release.
|
|
|
|
|
|
|
|
## General (All backends should apply these changes)
|
|
|
|
|
|
|
|
### Update `/etc/iredmail-release` with new iRedMail version number
|
|
|
|
|
|
|
|
iRedMail stores the release version in `/etc/iredmail-release` after
|
|
|
|
installation, it's recommended to update this file after you upgraded iRedMail,
|
|
|
|
so that you can know which version of iRedMail you're running. For example:
|
|
|
|
|
|
|
|
```
|
|
|
|
1.4.2
|
|
|
|
```
|
|
|
|
|
|
|
|
## For OpenLDAP backend
|
|
|
|
|
|
|
|
### Remove unused LDAP attributes
|
|
|
|
|
|
|
|
Few LDAP attributes in `iredmail.schema` file are not used since day one, it's
|
|
|
|
time to remove them:
|
|
|
|
|
|
|
|
- `lastLoginDate`
|
|
|
|
- `lastLoginIP`
|
|
|
|
- `lastLoginProtocol`
|
|
|
|
|
|
|
|
Download the latest iRedMail LDAP schema file
|
|
|
|
|
|
|
|
* On RHEL/CentOS:
|
|
|
|
|
|
|
|
```
|
|
|
|
wget -O /tmp/iredmail.schema https://github.com/iredmail/iRedMail/raw/1.4.2/samples/iredmail/iredmail.schema
|
|
|
|
mv /etc/openldap/schema/iredmail.schema{,.bak}
|
|
|
|
cp -f /tmp/iredmail.schema /etc/openldap/schema/
|
|
|
|
service slapd restart
|
|
|
|
```
|
|
|
|
|
|
|
|
* On Debian/Ubuntu:
|
|
|
|
```
|
|
|
|
wget -O /tmp/iredmail.schema https://github.com/iredmail/iRedMail/raw/1.4.2/samples/iredmail/iredmail.schema
|
|
|
|
mv /etc/ldap/schema/iredmail.schema{,.bak}
|
|
|
|
cp -f /tmp/iredmail.schema /etc/ldap/schema/
|
|
|
|
service slapd restart
|
|
|
|
```
|
|
|
|
|
|
|
|
* On FreeBSD:
|
|
|
|
|
|
|
|
```
|
|
|
|
wget -O /tmp/iredmail.schema https://github.com/iredmail/iRedMail/raw/1.4.2/samples/iredmail/iredmail.schema
|
|
|
|
mv /usr/local/etc/openldap/schema/iredmail.schema{,.bak}
|
|
|
|
cp -f /tmp/iredmail.schema /usr/local/etc/openldap/schema/
|
|
|
|
service slapd restart
|
|
|
|
```
|
|
|
|
|
|
|
|
* On OpenBSD:
|
|
|
|
|
|
|
|
> Note: if you're running ldapd as LDAP server, the schema directory is
|
|
|
|
> `/etc/ldap`, and service name is `ldapd`.
|
|
|
|
|
|
|
|
```
|
|
|
|
cd /tmp
|
|
|
|
ftp https://github.com/iredmail/iRedMail/raw/1.4.2/samples/iredmail/iredmail.schema
|
|
|
|
mv /etc/openldap/schema/iredmail.schema{,.bak}
|
|
|
|
cp -f /tmp/iredmail.schema /etc/openldap/schema/
|
|
|
|
rcctl restart slapd
|
|
|
|
```
|
|
|
|
|
|
|
|
## For MySQL and MariaDB backends
|
|
|
|
|
2021-09-12 22:33:05 -05:00
|
|
|
### Fix incorrect SQL column types and remove unused columns in `vmail.mailbox` tables
|
2021-09-12 22:13:26 -05:00
|
|
|
|
|
|
|
iRedMail-1.4.1 introduced 3 new columns used to enable or disable per-user
|
|
|
|
SOGo webmail, calendar and activesync services, but they were set to improper
|
|
|
|
column `CHAR(1)` because SOGo doesn't support it, we will change them to
|
|
|
|
`VARCHAR(1)`:
|
|
|
|
|
|
|
|
- `enablesogowebmail`
|
|
|
|
- `enablesogocalendar`
|
|
|
|
- `enablesogoactivesync`
|
|
|
|
|
2021-09-12 22:33:05 -05:00
|
|
|
3 columns are not used at all:
|
|
|
|
|
|
|
|
- `lastlogindate`
|
|
|
|
- `lastloginipv4`
|
|
|
|
- `lastloginprotocol`
|
|
|
|
|
2021-09-12 22:13:26 -05:00
|
|
|
Please download plain SQL file used to update SQL table, then import it as
|
|
|
|
MySQL root user (Please run commands below as `root` user):
|
|
|
|
|
|
|
|
```
|
|
|
|
wget -O /tmp/iredmail.mysql https://github.com/iredmail/iRedMail/raw/1.4.2/update/1.4.2/iredmail.mysql
|
|
|
|
mysql vmail < /tmp/iredmail.mysql
|
|
|
|
rm -f /tmp/iredmail.mysql
|
|
|
|
```
|
|
|
|
|
|
|
|
## For PostgreSQL backend
|
|
|
|
|
2021-09-12 22:33:05 -05:00
|
|
|
### Fix incorrect SQL column types and remove unused columns in `vmail.mailbox` tables
|
2021-09-12 22:13:26 -05:00
|
|
|
|
|
|
|
iRedMail-1.4.1 introduced 3 new columns used to enable or disable per-user
|
|
|
|
SOGo webmail, calendar and activesync services, but they were set to improper
|
|
|
|
column `CHAR(1)` because SOGo doesn't support it, we will change them to
|
|
|
|
`VARCHAR(1)`:
|
|
|
|
|
|
|
|
- `enablesogowebmail`
|
|
|
|
- `enablesogocalendar`
|
|
|
|
- `enablesogoactivesync`
|
|
|
|
|
2021-09-12 22:33:05 -05:00
|
|
|
3 columns are not used at all:
|
|
|
|
|
|
|
|
- `lastlogindate`
|
|
|
|
- `lastloginipv4`
|
|
|
|
- `lastloginprotocol`
|
|
|
|
|
2021-09-12 22:13:26 -05:00
|
|
|
Download plain SQL file used to update SQL table:
|
|
|
|
|
|
|
|
```
|
|
|
|
wget -O /tmp/iredmail.pgsql https://github.com/iredmail/iRedMail/raw/1.4.2/update/1.4.2/iredmail.pgsql
|
|
|
|
chmod +r /tmp/iredmail.pgsql
|
|
|
|
```
|
|
|
|
|
|
|
|
* Connect to PostgreSQL server as `postgres` user and import the SQL file:
|
|
|
|
* on Linux, it's `postgres` user
|
|
|
|
* on FreeBSD, it's `pgsql` user
|
|
|
|
* on OpenBSD, it's `_postgresql` user
|
|
|
|
|
|
|
|
```
|
|
|
|
su - postgres
|
|
|
|
psql -d vmail < /tmp/iredmail.pgsql
|
|
|
|
```
|
|
|
|
|
|
|
|
* Remove downloaded file:
|
|
|
|
|
|
|
|
```
|
|
|
|
rm -f /tmp/iredmail.pgsql
|
|
|
|
```
|
|
|
|
|
|
|
|
### SOGo: Re-create SQL VIEW and update config file
|
|
|
|
|
|
|
|
Download plain SQL file used to update SQL table:
|
|
|
|
|
|
|
|
```
|
|
|
|
wget -O /tmp/sogo.pgsql https://github.com/iredmail/iRedMail/raw/1.4.2/update/1.4.2/sogo.pgsql
|
|
|
|
chmod +r /tmp/sogo.pgsql
|
|
|
|
```
|
|
|
|
|
|
|
|
Please open file `/tmp/sogo.pgsql`, replace string `VMAIL_DB_BIND_PASSWD` by
|
|
|
|
the real password of SQL user `vmail`. You can find the password in any file
|
|
|
|
under `/etc/postfix/pgsql/`.
|
|
|
|
|
|
|
|
After updated `/tmp/sogo.pgsql`, please connect to PostgreSQL server as
|
|
|
|
`postgres` user and import the SQL file:
|
|
|
|
* on Linux, it's `postgres` user
|
|
|
|
* on FreeBSD, it's `pgsql` user
|
|
|
|
* on OpenBSD, it's `_postgresql` user
|
|
|
|
|
|
|
|
```
|
|
|
|
su - postgres
|
|
|
|
psql -d sogo < /tmp/sogo.pgsql
|
|
|
|
```
|
|
|
|
|
|
|
|
* Remove downloaded file:
|
|
|
|
|
|
|
|
```
|
|
|
|
rm -f /tmp/sogo.pgsql
|
|
|
|
```
|