Files
infisical/docs/self-hosting/guides/upgrading-infisical.mdx
2025-09-24 04:24:02 +04:00

123 lines
6.1 KiB
Plaintext

---
title: "Upgrade Infisical Instance"
description: "How to upgrade Infisical self-hosted instance"
---
Keeping your Infisical instance up to date is key to making sure you receive the latest performance improvements, security patches, and feature updates.
We release updates approximately once a week, which may include new features, bug fixes, performance enhancements, and critical security patches.
Since secrets management is a critical component of your infrastructure, we aim to avoid disruptive changes that will impact fetching secrets in downstream clients.
If a release requires specific attention, a note will be attached to the corresponding [release](https://github.com/Infisical/infisical/releases) version.
During an upgrade, two key components are updated:
- **Infisical Application:** The core application code is updated.
- **PostgreSQL Database Schema:** Schema migrations run automatically to ensure your database remains in sync with the updated application.
> **Before You Upgrade:**
> **Always back up your database.** While our automated migration system is robust, having a backup ensures you can recover quickly in the event of an issue.
## Automated Schema Migrations
In previous versions (prior to `v0.111.0-postgres`), schema migrations had to be executed manually before starting the application.
Now, migrations run automatically during boot-up. This improvement streamlines the upgrade process, reduces manual steps, and minimizes the risk of inconsistencies between your database schema and application code.
### Benefits of Automated Migrations
- **Seamless Integration:**
Migrations are now part of the boot-up process, removing the need for manual intervention.
- **Synchronous Upgrades:**
In multi-instance deployments, one instance acquires a lock and performs the migration while the others wait. This ensures that if a migration fails, the rollout is halted to prevent inconsistencies.
- **Reduced Room for Error:**
Automatic migrations help ensure that your database schema always remains in sync with your application code.
## Upgrade Steps
1. **Back Up Your Data:**
- Ensure you have a complete backup of your Postgres database.
- Verify that your backup is current and accessible.
2. **Plan Your Upgrade Path:**
- Use our [Upgrade Path Tool](https://app.infisical.com/upgrade-path) to analyze your upgrade path between your current version and target version.
- The tool will show you:
- **Breaking changes** that require action before upgrading
- **Database migrations** that may require additional settings or precautions
- **Step-by-step upgrade path** with intermediate versions if needed
- Review any breaking changes and plan necessary configuration updates before proceeding.
- Visit the [Infisical releases page](https://github.com/Infisical/infisical/releases) for a complete list of available versions.
![Upgrade Path Tool showing breaking changes and migration information](/images/self-hosting/helper/upgrade-path-tool.png)
3. **Start the Upgrade Process:**
- Launch the new version of Infisical. During startup, the application will automatically compare the current database schema with the updated schema in the code.
- If any differences are detected, Infisical will apply the necessary migrations automatically.
4. **Multi-Instance Coordination:**
- In environments with multiple instances, one instance will acquire a lock and perform the migration while the other instances wait.
- Once the migration is complete, all instances will operate with the updated schema.
5. **Verify the Upgrade:**
- Review the logs for any migration errors or warnings.
- Test basic functionality to ensure the upgrade was successful.
## Troubleshooting
### UI Caching Issues After Upgrade
After upgrading your Infisical instance, you may encounter UI-related issues such as:
- Strange loading behavior
- Components not rendering correctly
- Unexpected errors in the browser console
- Features appearing broken or unresponsive
These issues are often caused by browser caching of the previous version's static assets.
**Solution:**
1. **Try a private/incognito browser window first** - This is the quickest way to test if the issue is cache-related.
2. **Clear your browser cache** if the private window works correctly:
- **Chrome/Edge:** Press `Ctrl+Shift+Delete` (Windows/Linux) or `Cmd+Shift+Delete` (Mac)
- **Firefox:** Press `Ctrl+Shift+Delete` (Windows/Linux) or `Cmd+Shift+Delete` (Mac)
- **Safari:** Press `Cmd+Option+E` or go to Develop menu > Empty Caches
3. **Hard refresh the page** by pressing `Ctrl+F5` (Windows/Linux) or `Cmd+Shift+R` (Mac)
<Note>
Caching issues are temporary and typically resolve themselves as the cache expires, but manually clearing the cache provides immediate resolution.
</Note>
## Downgrade Considerations
While we recommend staying up-to-date with the latest version, there may be scenarios where you need to downgrade your Infisical instance.
<Warning>
**Database Compatibility:** Downgrading can be complex due to database schema changes. Always ensure you have proper backups before attempting any version changes.
</Warning>
### Safe Downgrade Process
1. **Prepare Database Snapshot:**
- Create a database snapshot/backup **before** upgrading to the target version
- Ensure the snapshot is from a version compatible with your desired downgrade target
2. **Stop Infisical Services:**
- Gracefully shut down all Infisical instances to prevent data corruption
3. **Restore Database:**
- Restore your database from the pre-upgrade snapshot
- **Critical:** Do not attempt to downgrade with a database that has run migrations from a newer version
4. **Deploy Previous Version:**
- Deploy the previous Infisical version
- Verify that the version matches the database schema in your snapshot
5. **Verify Functionality:**
- Test critical functionality to ensure the downgrade was successful
- Monitor logs for any compatibility issues
<Note>
The safest approach for downgrades is to restore to a known good state (both application and database) rather than attempting to reverse individual migrations.
</Note>