在 Django 中使用 PostgreSQL 运行 makemigrations 时出现分段错误(核心转储)

问题描述 投票:0回答:1

我正在尝试将我的 PostgreSQL-17 数据库连接到在 Ubuntu-24 上的 Conda 环境中运行的 Django 项目。但是,当我运行 python manage.py makemigrations 时,我不断遇到以下错误:

[1]    73059 segmentation fault (core dumped)  python manage.py makemigrations

我不知道问题出在哪里。这是我的

settings.py
文件中用于数据库连接的相关部分:

从 dotenv 导入 load_dotenv load_dotenv()

from dotenv import load_dotenv
load_dotenv()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        # 'ENGINE': 'django.db.backends.postgresql_psycopg2',  
        'NAME': os.getenv("DB_NAME", "default_db_name"),  
        'USER': os.getenv("DB_USER", "default_user"),
        'PASSWORD': os.getenv("DB_PASSWORD", "default_password"),
        'HOST': os.getenv("DB_HOST", "localhost"),  # Service name in Docker Compose
        'PORT': os.getenv("DB_PORT", "5432"),  # Default PostgreSQL port
        'CONN_MAX_AGE': int(os.getenv("CONN_MAX_AGE", '600')),
    }
}

这是我的

.env
文件的相关部分:

DB_ENGINE = django.db.backends.postgresql
DB_NAME = test_db          
DB_USER = test_admin          
DB_PASSWORD = test_123  
DB_HOST = localhost                     
DB_PORT = 5432
DATABASE_URL = 'postgres://test_admin:test_123@db:5432/test_db'
CONN_MAX_AGE = 600

我也尝试过:

  • 完全卸载并重新安装 PostgreSQL。
  • 在“django.db.backends.postgresql”和“django.db.backends.postgresql_psycopg2”之间切换。
  • 直接在代码中手动输入数据库凭据(而不是使用环境变量),但错误仍然存在。
  • 所有必需的 postgresql python 依赖项均已正确安装在 Conda python 环境中。
postgresql django-migrations django-database
1个回答
0
投票

我设法使用以下命令调试问题:

gdb --args python manage.py migrate

在gdb内部,我运行程序来跟踪错误:

(gdb) run

根本原因原来与 conda 依赖关系有关。我通过使用以下命令更新所有软件包解决了问题:

conda update --all

© www.soinside.com 2019 - 2024. All rights reserved.