Re: Exception trying to install pgadmin4 version 8.4

Поиск
Список
Период
Сортировка
От Shaheed Haque
Тема Re: Exception trying to install pgadmin4 version 8.4
Дата
Msg-id CAHAc2jfyAshLLeXZTf0FDo2kLsP-u01+haDBnD0j2w6x3EqN+w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Exception trying to install pgadmin4 version 8.4  (Khushboo Vashi <khushboo.vashi@enterprisedb.com>)
Список pgadmin-support

On Mon, 11 Mar 2024 at 03:17, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:


On Sun, Mar 10, 2024 at 7:06 PM Shaheed Haque <shaheedhaque@gmail.com> wrote:
OK, it looks as though this problem occurs newly in flask-migrate 4.0.6. It looks as though the changes here:


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@gmail.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@123.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@123.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

В списке pgadmin-support по дате отправления:

Предыдущее
От: Khushboo Vashi
Дата:
Сообщение: Re: Exception trying to install pgadmin4 version 8.4
Следующее
От: Tony Shelver
Дата:
Сообщение: Fwd: Performance (and general) considerations between views and functions