meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
updates [2023/10/24 16:20] andrewmalsburyupdates [2025/07/08 22:54] (current) – [CLI] bigbug
Line 1: Line 1:
 ====== Updates ====== ====== Updates ======
  
-  * **Keep your ITFlow instance updated** with the latest features and security patches +{{::update-warning.png}}
-  * Updates will contain changes to both the filesystem and the database schema. +
-  * The updater can be accessed via **Settings > Update**.  +
-  * It's important to take regular (e.g. nightly) backups of your ITFlow instance, especially before updating+
  
-===== Files =====+  * New features, bug fixes and security patches are regularly released - it's important to stay up-to-date 
 +  * It's important to take regular (e.g. nightly) backups of your ITFlow instance; **you should not attempt to run updates without a current backup** (e.g. VM snapshot) 
 +  * Always look over the changelog before running updates to check for breaking changes 
 +  * Updates are a two part process: 
 +    * Download the updated files 
 +    * Apply any required database migrations
  
-The majority of ITFlow updates are just changes to the PHP files. The update tab will show the latest [[https://github.com/itflow-org/itflow/commits/master|git commits]] and offer to download them for you. In the background, this is just running ''git pull''+===== Web Interface ===== 
 +  - Login to ITFlow as an admin 
 +  - Navigate to Admin Settings > Update 
 +  - If any updates are available, you will see the git commit details 
 +  - Select **Update App** (this downloads the latest app files) 
 +  - If promptedalso select **Update database** (you may have to do this several times)
  
-If you've edited any files, the auto-updater will fail - navigate to your web directory and run git pull to review and resolve the issue.+===== CLI ===== 
 +  Connect to your server via SSH as a user with root privileges 
 +  - Navigiate to the ITFlow scripts directory (usually ''/var/www/itflow.yourdomain.com/scripts''
 +  - To update the app files run: ''sudo -u www-data php update_cli.php'' 
 +  - Then apply database updates: ''sudo -u www-data php update_cli.php %%--%%update_db'' (this may have to be run several times)
  
-{{updates_git_pull.png?direct|}}+----
  
-===== Database ===== 
  
-After pulling down the latest files, the update page will then show if the latest database version has increased. If it has, it will offer to run the commands in //database_updates.php// to update the database.+===== Additional notes ===== 
 +  * It is crucial that you run the database updater as soon as possible after downloading the latest app files. Otherwiseyou will begin seeing database-related issues in your error log.
  
-If you have updated your files and the database is showing it needs an update, it is crucial that you run the database updater as soon as possible.+  * The database update applies one update at a time (see //database_updates.php//). If there are multiple updates needed, you will need to manually cycle through each update.
  
-If you do not update the database after updating the files, you will start seeing database-related errors +  * If you run into any issues running multiple database updates, you should try running the database updates via the CLI. Some updates alter files in your PHP session, which might only be set during login. This is usually mentioned in the breaking changes.
-  e.g. ''PHP Fatal error:  Uncaught TypeError: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in /var/www/html/''.  +
- +
-  * What this error is saying is that PHP failed to correctly pull data from the database. The query returned boolean false rather than a dataset. This would be due to something not matching (table/column names may have been added/changed). +
- +
-  * If you are ever unable to login to due not updating the database, you can manually apply the relevant SQL changes in //database_updates.php// at the CLI / using phpMyAdmin. +
- +
- +
-//Additional note: If you run into any issues running multiple database updates, it may be worth signing out and back in again between updates. Some updates alter files in your PHP session, which might only be set during login.// +
- +
-{{:updates_database.png?direct|}}+