Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade path and migratios from v4.1 to the latest version v4.4.1 #557

Open
rabbl opened this issue Jan 17, 2025 · 5 comments
Open

Upgrade path and migratios from v4.1 to the latest version v4.4.1 #557

rabbl opened this issue Jan 17, 2025 · 5 comments

Comments

@rabbl
Copy link

rabbl commented Jan 17, 2025

We need to upgrade v4.1 to the latest version due to vulnerability issues and I cannot find the upgrade strategy in the documentation.

Migration to a clean instance v4.4.1 does not work and brings a lot of errors.
Also a step by step upgrade in the current installation does not work properly because the infrastructure files and source code are raising errors.

What is the way to upgrade properly?

Did anybody of the community had a similar experience and can recommend a strategy here?

Thank you :)
Ralf

@BinoyKadakkal
Copy link

BinoyKadakkal commented Jan 18, 2025

I am also attempting to upgrade from version 4.1 to 4.4.x by following the procedure outlined in the documentation, but the process results in errors.

@mattiagiupponi
Copy link
Contributor

mattiagiupponi commented Jan 24, 2025

HI @rabbl and @BinoyKadakkal
The best approach for now to upgrade GeoNode from 4.0.x/4.1.x/4.2.x/4.3.x to 4.4.x is the following:

  • Backup the current system (also useful with the BR provided by GeoNode itself
  • Upgrade the geonode-project to the latest version in this repository. The easiest way is to re-generate the GeoNode project using the 4.4.x as a template and (if present) copy in the new project the custom changes on the files (settings, templates)
    Generate a new environment file from scratch using create-envfile.py. The newest versions of GeoNode include a new set of environment variables that are required for the installation. Once the .env file is created, you can replace the secrets with those of your previous environment (db password, admin passwords, etc.).
  • Change the value of the src/requirements.txt to GeoNode 4.3.2 (this step is required) and the value of the environment variable GEONODE_BASE_IMAGE_VERSION to 4.3.2
  • build and run the updated version (be sure that the migrations runs)
  • Once it is updated, stop the docker
  • rollback the changes to the requirements.txt file and the environment variable back to 4.4.1
  • build and run docker (be sure that the migrations runs)
  • run the command python manage.py migrate_file_to_assets

The step upgrade with the two versions is required since in geonode 44x the concept of assets has been introduced. So for a correct handle is better to proceed in this way.

Hope this will help, soon i'll create a wiki page for this

@rabbl
Copy link
Author

rabbl commented Jan 24, 2025

Thank you very much! I'll follow your approach and will report here!

@mattiagiupponi
Copy link
Contributor

Great @rabbl let me know if it works

@rabbl
Copy link
Author

rabbl commented Feb 14, 2025

Hi @mattiagiupponi and @BinoyKadakkal ,
the approach to update from v4.1. to latest works ❤ !

It took me some time to migrate because we had a custom docker compose file with traefik as reverse proxy.
So finally I can summarise the upgrade to the following steps!

  1. Make a backup
  2. Setup new geonode project (in our case 4.4.1)

It was really helpful to use the json-config and fill all values from the old env-file.

  1. Make sure that geoserver has the correct credentials set (as in .env). In my case the default credentials were set admin/geoserver and I had to update the password to the one in the .env.
  2. As wrote be @mattiagiupponi: Change the value of the src/requirements.txt to GeoNode 4.3.2 (this step is required) and the value of the environment variable GEONODE_BASE_IMAGE_VERSION to 4.3.2
  3. The copy the backup files into the volume and restore from backup.
  4. Migrate base-url if needed with python manage.py migrate_baseurl ...
  5. As wrote be @mattiagiupponi: rollback the changes to the requirements.txt file and the environment variable back to 4.4.1
  6. build and run docker (be sure that the migrations runs)
  7. run the command python manage.py migrate_file_to_assets

Ready!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants