Updating Friendica
When a new version of Friendica is published a release note1) contains details about the updating process of that version specific. Including known cliffs during the process and cornerstone releases that you should update to before installing the newest release.
The notes below contain general information and steps of the updating process.
Considerations before updating Friendica
MySQL >= 5.7.4
Starting from MySQL version 5.7.4, the IGNORE
keyword in ALTER TABLE
statements is ignored.
This prevents automatic table deduplication if a UNIQUE
index is added to a Friendica tables structure.
If a database update fails for you while creating a UNIQUE
index, make sure to manually deduplicate the table before trying the update again.
Manual deduplication
There are two main ways of doing it, either by manually removing the duplicates or by recreating the table.
Manually removing the duplicates is usually faster if they're not too numerous.
To manually remove the duplicates, you need to know the UNIQUE index columns available in database.sql
.
SQL command
SELECT GROUP_CONCAT(id), <index columns>, count(*) as count FROM users
GROUP BY <index columns> HAVING count >= 2;
/* delete or merge duplicate from above query */;
If there are too many rows to handle manually, you can create a new table with the same structure as the table with duplicates and insert the existing content with INSERT IGNORE
.
To recreate the table you need to know the table structure available in database.sql
.
SQL command CREATE TABLE <table_name>_new <rest of the CREATE TABLE>; INSERT IGNORE INTO <table_name>_new SELECT * FROM <table_name>; DROP TABLE <table_name>; RENAME TABLE <table_name>_new TO <table_name>
This method is slower overall, but it is better suited for large numbers of duplicates.
Using a Friendica archive (zip) file
If you installed Friendica in the path/to/friendica
folder:
- Unpack the new Friendica archive in
path/to/friendica_new
- Copy the following items from
path/to/friendica
topath/to/friendica_new
:config/local.config.php
proxy/
- The following items only need to be copied if they are located inside your friendica path:
- your storage folder as set in Admin → Site → File Upload → Storage base path
- your item cache as set in Admin → Site → Performance → Path to item cache
- your temp folder as set in Admin → Site → Advanced → Temp path
- Rename the
path/to/friendica
folder topath/to/friendica_old
- Rename the
path/to/friendica_new
folder topath/to/friendica
- Check your site. Note: it may go into maintenance mode to update the database schema.
- If everything works, just delete the
path/to/friendica_old
folder
Addons
To update Addons from an archive, simply delete the path/to/friendica/addon
and replace it with the provided archive.
Using Git
You can get the latest changes at any time with
cd path/to/friendica git pull bin/composer.phar install --no-dev
The addon tree has to be updated separately like so:
cd path/to/friendica/addon git pull
About the Repositories
stable branch
The default branch for friendica and addons to use is the stable
branch, which is the stable version of friendica.
It is updated about four times a year on a fixed schedule.
develop branch
If you want to use and test bleeding edge code checkout the develop
friendica and addon branch.
The new features and fixes will be merged from develop
into stable
after a release candidate period before each release.
Warning: The develop
branch is unstable, and breaks on average once a month for at most 24 hours until a patch is submitted and merged.
Be sure to pull frequently if you choose the develop
branch.