安装Django项目时无法打开citext.control扩展控制文件问题求助
运行环境
- Ubuntu 20.04 搭配 Python 3.8,Debian 10 搭配 Python 3.7
- 已尝试 PostgreSQL 11、12、14 三个版本
- Psycopg2-binary 版本为 2.8.6
问题概述
安装 Django 项目时触发如下报错:psycopg2.errors.UndefinedFile: could not open extension control file "/usr/share/pgsql/extension/citext.control": No such file or directory
psycopg 开发人员表示该问题大概率与 postgresql-contrib 库相关,多数用户通过安装 postgresql-contrib 解决该问题,但该方案对本次场景无效,也尝试过单独安装 postgresql-12。
已确认 citext.control 文件实际存在于 /usr/share/postgresql/12/extension/citext.control 路径下,因此尝试执行软链接命令 ln -s /usr/share/postgresql/12 /usr/share/pgsql,问题仍未解决。
也在 PostgreSQL 中手动执行了 CREATE EXTENSION citext; 命令,依旧无效。
目前项目上线计划已被该问题阻塞,恳请各位提供可行解决方案,万分感谢。
报错堆栈
Running migrations: Applying core.0043_install_ci_extension_pg...Traceback (most recent call last): File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) psycopg2.errors.UndefinedFile: could not open extension control file "/usr/share/pgsql/extension/citext.control": No such file or directory The above exception was the direct cause of the following exception: Traceback (most recent call last): File "manage.py", line 16, in <module> execute_from_command_line(sys.argv) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line utility.execute() File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/__init__.py", line 356, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/home/user/janeway/src/utils/management/commands/install_janeway.py", line 58, in handle call_command('migrate') File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/__init__.py", line 131, in call_command return command.execute(*args, **defaults) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 202, in handle post_migrate_state = executor.migrate( File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/migrations/executor.py", line 115, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/migrations/executor.py", line 244, in apply_migration state = migration.apply(state, schema_editor) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/migrations/migration.py", line 129, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/contrib/postgres/operations.py", line 17, in database_forwards schema_editor.execute("CREATE EXTENSION IF NOT EXISTS %s" % schema_editor.quote_name(self.name)) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 136, in execute cursor.execute(sql, params) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/utils.py", line 94, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/utils/six.py", line 685, in reraise raise value.with_traceback(tb) File "/home/user/venvs/janeway/lib/python3.8/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) django.db.utils.OperationalError: could not open extension control file "/usr/share/pgsql/extension/citext.control": No such file or directory
内容的提问来源于stack exchange,提问作者JSB
相关产品推荐
相关产品推荐

