3.9 KiB
Updating UNIT3D
This guide walks you through updating UNIT3D from v8.3.3
to v9.0.1
and upgrading PHP from 8.3
to 8.4
.
[!IMPORTANT]
Ensure you have a complete backup before proceeding.
1. Create Backup
UNIT3D offers built-in backups. Refer to the Backups page in this wiki for usage.
[!IMPORTANT] Verify your backups before continuing.
2. Enter Maintenance Mode
cd /var/www/html
php artisan down
3. Update Meilisearch
- Stop the service and install the latest Meilisearch:
sudo apt update
sudo apt upgrade
sudo systemctl stop meilisearch
sudo curl -L https://install.meilisearch.com | sudo sh
sudo mv ./meilisearch /usr/local/bin/
sudo chmod +x /usr/local/bin/meilisearch
sudo rm -rf /var/lib/meilisearch/data
- Restart Meilisearch:
sudo chmod +x /usr/local/bin/meilisearch
sudo systemctl start meilisearch
4. Update PHP
- Refer to the Upgrading PHP Version documentation.
5. Update UNIT3D
- Proceed to update UNIT3D after completing the PHP upgrade steps:
cd /var/www/html
php artisan git:update
During the update, UNIT3D shows file differences and prompts you to keep or update each file. It is recommended to update all files. Before starting, copy the latest backup to ~/tempBackup
. After the update, file conflicts are saved to ~/tempBackup/fileConflicts.txt
for review and merging if needed.
6. Database Migration Fix
During the update, you might encounter an error related to the tickets table:
2025_02_17_074140_update_columns_to_boolean ......................................................................................... 38.50ms FAIL
In Connection.php line 825:
SQLSTATE[22004]: Null value not allowed: 1138 Invalid use of NULL value (Connection: mysql, SQL: alter table `tickets` modify `staff_read` tinyint(1) not null default '0')
In Connection.php line 571:
SQLSTATE[22004]: Null value not allowed: 1138 Invalid use of NULL value
Resolve NULL values in tickets table:
1. Log in to MySQL:
mysql -u your_username -p
When prompted, enter your MySQL password. Once logged in, select the appropriate database by running:
USE your_database_name;
- Fix the Null Values:
Run the following SQL command to update any null entries in the staff_read
column to 0:
UPDATE tickets SET staff_read = 0 WHERE staff_read IS NULL;
- Exit MySQL:
exit;
- Complete migrations:
php artisan migrate
5. Final Reset & Cleanup
After updating and migrating, run the following commands to clear caches, reinstall dependencies, rebuild assets, and restart services:
sudo -u www-data composer install --prefer-dist --no-dev -o && \
sudo php artisan cache:clear && \
sudo php artisan queue:clear && \
sudo php artisan auto:email-blacklist-update && \
sudo php artisan auto:cache_random_media && \
sudo php artisan set:all_cache && \
bun install && \
bun run build && \
sudo php artisan migrate && \
sudo systemctl restart php8.4-fpm && \
sudo php artisan queue:restart && \
sudo supervisorctl reread && \
sudo supervisorctl update && \
sudo supervisorctl reload && \
sudo php artisan scout:sync-index-settings && \
sudo php artisan auto:sync_torrents_to_meilisearch --wipe && \
sudo php artisan auto:sync_people_to_meilisearch
Finally, finish the update and bring your site back online:
sudo php artisan scout:sync-index-settings && \
sudo php artisan auto:sync_torrents_to_meilisearch --wipe && \
sudo php artisan auto:sync_people_to_meilisearch && \
sudo php artisan set:all_cache && \
sudo systemctl restart php8.4-fpm && \
sudo php artisan queue:restart && \
sudo php artisan up