Re: Exception trying to install pgadmin4 version 8.4

From: Shaheed Haque <shaheedhaque(at)gmail(dot)com>
To: pgadmin-support(at)lists(dot)postgresql(dot)org
Subject: Re: Exception trying to install pgadmin4 version 8.4
Date: 2024-03-10 13:36:02
Message-ID: CAHAc2je_TBjuZ86nBkAjjAmjgFmAhb03kLNaROSM7nxRoor1Zw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

OK, it looks as though this problem occurs newly in flask-migrate 4.0.6. It
looks as though the changes here:

https://github.com/miguelgrinberg/Flask-Migrate/commit/6f3f889c36030134f87dc1db327c2385d873a4d6

introduce some new behaviour which I guess pgadmin4 does not yet support.
Can I gently request that the pgadmin4 team look into this further? I am of
course happy to test as needed.

Thanks, Shaheed

On Sun, 10 Mar 2024 at 10:56, Shaheed Haque <shaheedhaque(at)gmail(dot)com> wrote:

> Hi,
>
> I have a scripted install for pgadmin4 which worked as expected for
> pgadmin7.7 when last used. I'm now trying to install 8.4 in a new VM, and
> it fails like this:
>
> $ sudo -i -u ubuntu PGADMIN_SETUP_EMAIL=xxx(at)123(dot)com
> PGADMIN_SETUP_PASSWORD=abcd python3
> /home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/setup.py setup-db
> 2024-03-10 03:13:21,163: ERROR pgadmin: Database migration failed
> 2024-03-10 03:13:21,164: ERROR pgadmin: Traceback (most recent
> call last):
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 386, in upgrade_db
> db_upgrade(app)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/setup/db_upgrade.py",
> line 22, in db_upgrade
> flask_migrate.upgrade(migration_folder)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 111, in wrapped
> f(*args, **kwargs)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 198, in upgrade
> config = current_app.extensions['migrate'].migrate.get_config(directory,
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 96, in get_config
> for x in g.x_arg:
> File "/home/ubuntu/venv/lib/python3.10/site-packages/flask/ctx.py", line
> 54, in __getattr__
> raise AttributeError(name) from None
> AttributeError: x_arg
> ...
> ascii art traceback
> ...
> AttributeError: x_arg
>
> During handling of the above exception, another exception occurred:
> ...
> ascii art traceback
> ...
> FileNotFoundError: [Errno 2] No such file or directory:
> '/var/lib/pgadmin/pgadmin4.db' ->
> '/var/lib/pgadmin/pgadmin4.db.20240310031321'
>
> Note: the argument "setup-db" was not previously used, but seems required
> now. I've enclosed the output of "pip freeze" below. I have verified that
> the directory "/var/lib/pgadmin" exists, and is writeable by the user
> "ubuntu". In the same directory as setup.py is the following file:
>
> $ cat
> /home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/config_local.py
> LOG_FILE = '/var/log/pgadmin/pgadmin4.log'
> SQLITE_PATH = '/var/lib/pgadmin/pgadmin4.db'
> SESSION_DB_PATH = '/var/lib/pgadmin/sessions'
> STORAGE_DIR = '/var/lib/pgadmin/storage'
> AZURE_CREDENTIAL_CACHE_DIR = '/var/lib/pgadmin/azurecredentialcache'
> <<< new entry
> KERBEROS_CCACHE_DIR = '/var/lib/pgadmin/kerberoscache'
> <<< new entry
> SERVER_MODE = True
>
> Note: I have highlighted a couple of entries which I added after reading
> the current installation documentation. I also tried launching the VM with
> the previously working pgadmin4 7.7
>
> $ sudo -i -u ubuntu PGADMIN_SETUP_EMAIL=123(at)123(dot)com
> PGADMIN_SETUP_PASSWORD=abcdedg python3
> /home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/setup.py setup-db
> 2024-03-10 10:04:24,371: ERROR pgadmin: Database migration failed
> 2024-03-10 10:04:24,372: ERROR pgadmin: Traceback (most recent
> call last):
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 390, in upgrade_db
> db_upgrade(app)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/setup/db_upgrade.py",
> line 25, in db_upgrade
> flask_migrate.upgrade(migration_folder)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 111, in wrapped
> f(*args, **kwargs)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 198, in upgrade
> config = current_app.extensions['migrate'].migrate.get_config(directory,
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 96, in get_config
> for x in g.x_arg:
> File "/home/ubuntu/venv/lib/python3.10/site-packages/flask/ctx.py", line
> 52, in __getattr__
> raise AttributeError(name) from None
> AttributeError: x_arg
> Traceback (most recent call last):
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 390, in upgrade_db
> db_upgrade(app)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/setup/db_upgrade.py",
> line 25, in db_upgrade
> flask_migrate.upgrade(migration_folder)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 111, in wrapped
> f(*args, **kwargs)
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 198, in upgrade
> config = current_app.extensions['migrate'].migrate.get_config(directory,
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/flask_migrate/__init__.py",
> line 96, in get_config
> for x in g.x_arg:
> File "/home/ubuntu/venv/lib/python3.10/site-packages/flask/ctx.py", line
> 52, in __getattr__
> raise AttributeError(name) from None
> AttributeError: x_arg
> During handling of the above exception, another exception occurred:
> Traceback (most recent call last):
> File "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/setup.py",
> line 220, in <module>
> app = create_app()
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 477, in create_app
> run_migration_for_sqlite()
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 414, in run_migration_for_sqlite
> upgrade_db()
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 395, in upgrade_db
> backup_db_file()
> File
> "/home/ubuntu/venv/lib/python3.10/site-packages/pgadmin4/pgadmin/__init__.py",
> line 372, in backup_db_file
> os.rename(SQLITE_PATH, backup_file_name)
> FileNotFoundError: [Errno 2] No such file or directory:
> '/var/lib/pgadmin/pgadmin4.db' ->
> '/var/lib/pgadmin/pgadmin4.db.20240310100424'
>
> Note that 7.7 fails in the same way with or without the newly added
> "setup-db" argument. Given this pattern, my guess is that flask-migrate or
> flask is possibly the issue, rather than pgadmin4, but I have not been able
> to debug/confirm that.
>
> Any advice appreciated.
>
> Thanks, Shaheed
>
> Ecls: pip freeze output...
>
> (venv) srhaque-paiyroll-28edd545c2 pip freeze
> ...
> Flask==2.3.3
> flask-babel==4.0.0
> Flask-Compress==1.14
> Flask-Gravatar==0.5.0
> Flask-Login==0.6.3
> Flask-Mail==0.9.1
> Flask-Migrate==4.0.6
> Flask-Paranoid==0.3.0
> Flask-Principal==0.4.0
> Flask-Security-Too==5.3.3
> Flask-SocketIO==5.3.6
> Flask-SQLAlchemy==3.1.1
> Flask-WTF==1.2.1
> ...
> pgadmin4==8.4
>

In response to

Responses

Browse pgadmin-support by date

  From Date Subject
Next Message microsys.gr microsys.gr 2024-03-10 21:39:23 Filter which databases to view in server tree view
Previous Message Shaheed Haque 2024-03-10 10:56:17 Exception trying to install pgadmin4 version 8.4