How to migrate the database created from old version

Hi guys! I had a Galaxy installed in a local server, which I had used for 2 years. However, the TI guy updated the Linux, as well as change the folders, because he made an HDs upgrade too. After that, I can’t open anymore the old Galaxy version, but I have the folder with all datasets and a lot of data analyzed. We tried to re-install the old version, but we can’t, cause an incompatibility of systems versions as well as the Python version. We tried unsuccessfully a lot of times and in different ways.

How can I recover these data in an installed new version of Galaxy?

thanks for any help.
Leandro

1 Like

Hi @lfdeoliveira

The admin docs are here https://docs.galaxyproject.org/ but your situation is a bit tricky. Older tools may not work in the current release. That could impact workflows. If the goal is just to migrate data, that is simpler (comparatively).

Let’s get some expert help at the admin Gitter chat. They may reply here or there, and feel free to join the chat galaxyproject/admins - Gitter

Meanwhile, if you could clarify what is working versus not, that would help. The usual advice is to update the original to each newer release, in order, until the database is current. Several releases over the last two years involved significant changes (and others have had problems with larger “hops”).

Let’s start there

Make sure you backup your database!

You can try setting up a fresh copy of the database, and a fresh copy of Galaxy. It will detect the database, and then if everything goes well, it starts migrating up to the latest version of the database schema. Generally database migrations just work, but always backup first in case!

That might work. You’ll need to configure your galaxy with the same tools and same path to data as the old galaxy was configured, and that can take some time.

Usually we recommend going release by release as @jennaj mentions, but sometimes that isn’t an option.

1 Like

Hi @jennaj thanks for your help. Actually, we are almost recovery the old version. However, an error was raised at the final installation, see below:

Traceback (most recent call last):
File “lib/galaxy/init.py”, line 5, in
from pkgutil import extend_path
ImportError: No module named pkgutil

As result, when I access the HTML address (on browser, … :8080), ‘Internal Server Error’ is shown.

Our old version is from 2019, and runner under python2.

Do you know this error? If yes, how can I solve it?

Thanks

Hi @lfdeoliveira

Python 2 support was dropped from where you started and the current release. This commit from December 2020 includes the changes to that file and others.

Maybe start by checking to see if pkgutil is included in your current galaxy environment? And that it is still using the original Python 2 version that worked before? If the environment is accessing Python 3, many problems could pop out, and not just with Galaxy but older versions of tools/workflows.

If that doesn’t help, please explain a bit more about what you are doing. It sounds like you decided to restore the old database in the same prior environment. That would be the easiest way forward: get the original working so you can upgrade through subsequent releases/dependencies until current.

Thanks so much, @jennaj . See my answers:

It sounds like you decided to restore the old database in the same prior environment. That would be the easiest way forward: get the original working so you can upgrade through subsequent releases/dependencies until current.
yes! that’s exactly this that we want to do. First, we want to install the old version, recovery the data, and export or share with a new Galaxy version, or yet, update the older version.

This commit from December 2020 includes the changes to that file and others.
I visited this link and I tried to change the inti.py file, as request.
from pkgutil import extend_path
- path = extend_path(path, name)
+ path = extend_path(path, name) # type: ignore

But, didn’t work. My guess is about # type: ignore. Is it correct with #? I don’t if I understood?

Thanks for your help

1 Like

Ok, thanks for clarifying @lfdeoliveira

Since you are starting from the old release, that newer commit wouldn’t apply and you can ignore it.

That leaves the environment as being a factor. Make sure Galaxy is using Python 2 then check to make sure the package is available and add it if missing for some reason (py2 version of it). Python 3 won’t work with the older releases.

Hi @jennaj Thanks a lot for the explanation…

See the PrintScreen below. We did the same way that 2 years ago. We installed the galaxy inside a conda environment… and therein, a Python 2… If all this is correct, it should be to work, correct? but, what did we doing wrong?

image

1 Like

ping @hxr – Do you recognize what is going wrong with the config?