Django-constance:关系“constance_config”不存在

时间:2017-07-31 12:27:18

标签: python django

我无法使用django-constance

我已按照此处的步骤操作:https://django-constance.readthedocs.io/en/latest/index.html

  1. pip install "django-constance[database]"
  2. 'constance''constance.backends.database',添加到INSTALLED_APPS
  3. 将以下内容放置在设置文件的底部(它不是setings.py,而是common.py):

    CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
    CONSTANCE_DATABASE_PREFIX = 'constance:my_app_name:'
    CONSTANCE_CONFIG = {
        'THE_ANSWER': (42,
                       'Answer to the Ultimate Question of Life, The Universe, and Everything'),
    }
    
  4. 然后运行python manage.py migrate database

  5. 但是没有创建动态设置表。这是我尝试列出constance设置时的最佳选择:

    $ python manage.py constance list
    ...
    django.db.utils.ProgrammingError: relation "constance_config" does not exist
    LINE 1: ...ce_config"."key", "constance_config"."value" FROM "constance...
    


    我正在运行 Python 3.5.2 Django 1.11.3 django-constance 2.0.0

    有什么想法发生了什么?

2 个答案:

答案 0 :(得分:1)

我不确定为什么,但这是有效的:

  1. database初始迁移存在

    $ python manage.py showmigrations database
    database
    [X] 0001_initial
    

    但表格本身不是

    \dt *constance*
    No matching relations found.
    
  2. 所以我从django_migrations

    中删除了该迁移
    delete from django_migrations where app = 'database';
    
  3. 重新开始迁移

    python manage.py migrate database
    
  4. 就是这样。 constance list表现得很好:

    $ python manage.py constance list
    THE_ANSWER  42
    

答案 1 :(得分:0)

检查项目设置文件中的INSTALLED_APPS,如果您想使用类似下面的数据库后端更改:

INSTALLED_APPS = (
    # other apps
    'constance.backends.database',
)

Read more