Ошибка при открытии pgAdmin

Часто после установки последней версии pgAdmin сталкивался с проблемой, что он отказывается запускаться. На экране видим сначала окно с сообщением, что запуск занял чуть больше времени, чем обычно, затем появляется окно с ошибкой:

pgAdmin Runtime Environment
--------------------------------------------------------
Python Path: "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\python.exe"
Runtime Config File: "C:\Users\user1\AppData\Roaming\pgadmin4\config.json"
Webapp Path: "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgAdmin4.py"
pgAdmin Command: "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\python.exe -s C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgAdmin4.py"
Environment: 
  - ALLURE_HOME: C:\Users\user1\scoop\apps\allure\current
  - ALLUSERSPROFILE: C:\ProgramData
  - APPDATA: C:\Users\user1\AppData\Roaming
  - CommonProgramFiles: C:\Program Files\Common Files
  - CommonProgramFiles(x86): C:\Program Files (x86)\Common Files
  - CommonProgramW6432: C:\Program Files\Common Files
  - COMPUTERNAME: DESKTOP-Q4LRPOD
  - ComSpec: C:\WINDOWS\system32\cmd.exe
  - CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7
  - CUDA_PATH_V11_7: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7
  - DriverData: C:\Windows\System32\Drivers\DriverData
  - ELECTRON_ENABLE_SECURITY_WARNINGS: false
  - EXTPROC_DLLS: ANY
  - FPS_BROWSER_APP_PROFILE_STRING: Internet Explorer
  - FPS_BROWSER_USER_PROFILE_STRING: Default
  - GOPATH: C:\Users\user1\go
  - HOMEDRIVE: C:
  - HOMEPATH: \Users\user1
  - JAVA_HOME: C:\Program Files\BellSoft\LibericaJDK-11-Full\
  - LOCALAPPDATA: C:\Users\user1\AppData\Local
  - LOGONSERVER: \\DESKTOP-Q4LRPOD
  - NUMBER_OF_PROCESSORS: 12
  - NVTOOLSEXT_PATH: C:\Program Files\NVIDIA Corporation\NvToolsExt\
  - OneDrive: C:\Users\user1\OneDrive
  - ORIGINAL_XDG_CURRENT_DESKTOP: undefined
  - OS: Windows_NT
  - Path: C:\Program Files\PostgreSQL\15\pgAdmin 4\runtime;C:\Program Files (x86)\VMware\VMware Player\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Go\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git\cmd;C:\Users\user1\scoop\shims;C:\Users\user1\AppData\Local\Microsoft\WindowsApps;C:\Users\user1\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\user1\AppData\Local\Microsoft\WindowsApps;C:\Users\user1\.dotnet\tools;C:\Users\user1\.dotnet\tools;C:\Users\user1\go\bin;C:\Windows\System32;
  - PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  - PGADMIN_INT_KEY: e83b1891-0bb9-4f7d-97f5-c169febeefd0
  - PGADMIN_INT_PORT: 2996
  - PGADMIN_SERVER_MODE: OFF
  - PROCESSOR_ARCHITECTURE: AMD64
  - PROCESSOR_IDENTIFIER: AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
  - PROCESSOR_LEVEL: 23
  - PROCESSOR_REVISION: 7100
  - ProgramData: C:\ProgramData
  - ProgramFiles: C:\Program Files
  - ProgramFiles(x86): C:\Program Files (x86)
  - ProgramW6432: C:\Program Files
  - PSModulePath: C:\Program Files (x86)\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modules\;C:\Program Files (x86)\AutoIt3\AutoItX
  - PUBLIC: C:\Users\Public
  - RGSC: C:\Program Files (x86)\Rockstar Games\Rockstar Games Social Club\1_0_0_0
  - RGSCLauncher: C:\Program Files (x86)\Rockstar Games\Rockstar Games Social Club
  - SESSIONNAME: Console
  - SONAR_JAVA_PATH: C:\Program Files\Java\jdk-14.0.1\bin\java.exe
  - SystemDrive: C:
  - SystemRoot: C:\WINDOWS
  - TEMP: F:\AppData\Local\Temp
  - TMP: F:\AppData\Local\Temp
  - USERDOMAIN: DESKTOP-Q4LRPOD
  - USERDOMAIN_ROAMINGPROFILE: DESKTOP-Q4LRPOD
  - USERNAME: user1
  - USERPROFILE: C:\Users\user1
  - VBOX_MSI_INSTALL_PATH: C:\Program Files\Oracle\VirtualBox\
  - VS140COMNTOOLS: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
  - windir: C:\WINDOWS
--------------------------------------------------------

Total spawn time to start the pgAdmin4 server: 0.069 Sec
2024-12-20 16:10:45,102: ERROR	pgadmin:	Database migration failed

2024-12-20 16:10:45,109: ERROR	pgadmin:	Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: duplicate column name: username

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\__init__.py", line 386, in upgrade_db
    db_upgrade(app)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\setup\db_upgrade.py", line 25, in db_upgrade
    flask_migrate.upgrade(migration_folder)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\flask_migrate\__init__.py", line 111, in wrapped
    f(*args, **kwargs)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\flask_migrate\__init__.py", line 200, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\command.py", line 406, in upgrade
    script.run_env()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\script\base.py", line 586, in run_env
    util.load_python_file(self.dir, "env.py")
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\util\pyfiles.py", line 95, in load_python_file
    module = load_module_py(module_id, path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\util\pyfiles.py", line 113, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 95, in <module>
    run_migrations_online()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 87, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\runtime\environment.py", line 946, in run_migrations
    self.get_context().run_migrations(**kw)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\runtime\migration.py", line 628, in run_migrations
    step.migration_fn(**kw)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\migrations\versions\7fedf8531802_.py", line 27, in upgrade
    op.add_column('user', sa.Column('username', sa.String(length=256),
  File "<string>", line 8, in add_column
  File "<string>", line 3, in add_column
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\operations\ops.py", line 2156, in add_column
    return operations.invoke(op)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\operations\base.py", line 442, in invoke
    return fn(self, operation)
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\operations\toimpl.py", line 183, in add_column
    operations.impl.add_column(table_name, column, schema=schema, **kw)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\ddl\impl.py", line 337, in add_column
    self._exec(base.AddColumn(table_name, column, schema=schema))
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\ddl\impl.py", line 210, in _exec
    return conn.execute(construct, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1418, in execute
    return meth(
           ^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection
    return connection._execute_ddl(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1529, in _execute_ddl
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) duplicate column name: username
[SQL: ALTER TABLE user ADD COLUMN username VARCHAR(256) DEFAULT '' NOT NULL]
(Background on this error at: https://sqlalche.me/e/20/e3q8)


Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context

    self.dialect.do_execute(
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\default.py", line 941, in do_execute

    cursor.execute(statement, parameters)
sqlite3.OperationalError: duplicate column name: username

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\__init__.py", line 386, in upgrade_db

    db_upgrade(app)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\setup\db_upgrade.py", line 25, in db_upgrade
    flask_migrate.upgrade(migration_folder)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\flask_migrate\__init__.py", line 111, in wrapped

    f(*args, **kwargs)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\flask_migrate\__init__.py", line 200, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\command.py", line 406, in upgrade

    script.run_env()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\script\base.py", line 586, in run_env

    util.load_python_file(self.dir, "env.py")
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\util\pyfiles.py", line 95, in load_python_file
    module = load_module_py(module_id, path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\util\pyfiles.py", line 113, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 95, in <module>

    run_migrations_online()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 87, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\runtime\environment.py", line 946, in run_migrations

    self.get_context().run_migrations(**kw)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\runtime\migration.py", line 628, in run_migrations
    step.migration_fn(**kw)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\migrations\versions\7fedf8531802_.py", line 27, in upgrade

    op.add_column('user', sa.Column('username', sa.String(length=256),
  File "<string>", line 8, in add_column
  File "<string>", line 3, in add_column
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\operations\ops.py", line 2156, in add_column

    return operations.invoke(op)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\operations\base.py", line 442, in invoke

    return fn(self, operation)
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\operations\toimpl.py", line 183, in add_column
    operations.impl.add_column(table_name, column, schema=schema, **kw)
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\ddl\impl.py", line 337, in add_column

    self._exec(base.AddColumn(table_name, column, schema=schema))
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\alembic\ddl\impl.py", line 210, in _exec
    return conn.execute(construct, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1418, in execute

    return meth(
           ^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection

    return connection._execute_ddl(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1529, in _execute_ddl

    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1846, in _execute_context

    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1986, in _exec_single_context

    self._handle_dbapi_exception(
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 2355, in _handle_dbapi_exception

    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context

    self.dialect.do_execute(
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\python\Lib\site-packages\sqlalchemy\engine\default.py", line 941, in do_execute

    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) duplicate column name: username
[SQL: ALTER TABLE user ADD COLUMN username VARCHAR(256) DEFAULT '' NOT NULL]
(Background on this error at: https://sqlalche.me/e/20/e3q8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgAdmin4.py", line 103, in <module>

    app = create_app()
          ^^^^^^^^^^^^
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\__init__.py", line 473, in create_app
    run_migration_for_sqlite()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\__init__.py", line 432, in run_migration_for_sqlite

    upgrade_db()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\__init__.py", line 391, in upgrade_db

    backup_db_file()
  File "C:\Program Files\PostgreSQL\15\pgAdmin 4\web\pgadmin\__init__.py", line 368, in backup_db_file
    os.rename(SQLITE_PATH, backup_file_name)
PermissionError: [WinError 32] ������� �� ����� �������� ������ � �����, ��� ��� ���� ���� ����� ������ ���������: 'C:\\Users\\user1\\AppData\\Roaming\\pgAdmin\\pgadmin4.db' -> 'C:\\Users\\user1\\AppData\\Roaming\\pgAdmin\\pgadmin4.db.20241220161045'

Для исправления данной ошибки необходимо очистить временные файлы и настройки от предыдущих установок. Для этого полностью удаляем папки:

C:\Users\user1\AppData\Roaming\pgadmin4
C:\Users\user1\AppData\Roaming\pgAdmin

Если система говорит, что папка занята другой программой и не дает удалить, значит надо закрыть окно с ошибкой. После этого должно дать удалить и pgAdmin сможет корректно запуститься.