代码之家  ›  专栏  ›  技术社区  ›  Johan Vergeer

如何在用django初始化数据库后运行postgres命令

  •  0
  • Johan Vergeer  · 技术社区  · 6 年前

    我尝试为Django项目运行一些测试,为此Django创建了一个新的数据库,专门用于运行测试。

    在我的例子中,主数据库名为“kim”,Django创建一个数据库“test-kim”来运行测试。

    自从我有了 CICharField 在我的一个模型中,我必须在数据库创建之后和Django迁移运行之前运行此命令。

    psql =# \c db_1
    CREATE EXTENSION citext;
    

    现在我想知道如何为测试数据库运行这个命令?

    1 回复  |  直到 6 年前
        1
  •  2
  •   schillingt    6 年前

    您应该创建一个处理为您创建扩展的迁移。 Here are the docs on it.

    你会这样做:

    python manage.py makemigrations <APP_NAME> --empty
    

    然后在迁移导入中:

    from django.contrib.postgres.operations import CITextExtension
    

    并添加 CITextExtension() 它给 migrations 名单。此迁移应该是创建 CITextField 字段。