You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django后台加载报错:relation 'pdf_conversion'不存在求助

问题解决:Django后台提示pdf_conversion表不存在但迁移显示已应用

核心问题

尽管迁移命令执行成功、showmigrations显示已应用,但PostgreSQL数据库中实际未创建pdf_conversion表,导致后台访问/admin/pdf/conversion/时触发ProgrammingError。

排查与解决步骤

1. 验证数据库中是否存在目标表

通过psql连接到Django对应的数据库,执行以下命令确认表是否存在:

-- 查看数据库内所有表
\dt
-- 直接查询目标表
SELECT * FROM pdf_conversion;

若查询返回relation "pdf_conversion" does not exist,说明迁移未真正在数据库中生效。

2. 检查迁移文件内容

打开pdf/migrations/0001_initial.py,确认其中包含Conversion模型的创建逻辑:

# 迁移文件中应存在类似代码段
migrations.CreateModel(
    name='Conversion',
    fields=[
        ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
        ('conversion_id', models.CharField(default=None, max_length=200)),
        ('api_domain', models.CharField(max_length=250, null=True)),
        ('user', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, related_name='user', to='your_app.CustomUser', null=True)),
    ],
),

如果缺少这段代码,说明makemigrations未正确识别模型变化,需重新生成迁移。

3. 强制重置迁移并重新执行

# 回滚pdf应用的所有迁移
python manage.py migrate pdf zero
# 删除pdf应用下的所有迁移文件(保留__init__.py)
rm pdf/migrations/00*.py
# 重新生成迁移
python manage.py makemigrations pdf
# 重新应用迁移
python manage.py migrate pdf

执行过程中注意观察控制台输出,若出现关联错误(比如CustomUser引用问题),需先修复模型关联逻辑。

4. 检查数据库连接配置

确认settings.py中的DATABASES配置指向正确的数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'your_db_name',
        'USER': 'your_db_user',
        'PASSWORD': 'your_db_password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

避免因连接到错误数据库,导致表创建在非预期位置。

5. 检查模型的db_table属性

确认Conversion模型未自定义db_table属性,若有自定义,Django会使用指定表名而非默认的pdf_conversion:

# 错误示例:若存在此行,需修改或移除
class Conversion(models.Model):
    class Meta:
        db_table = 'custom_conversion_table'

内容的提问来源于stack exchange,提问作者nadermx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:15:26