【问题标题】:How to setup a Postgres extension?如何设置 Postgres 扩展?
【发布时间】:2015-07-31 13:53:55
【问题描述】:

在最新版本的 Django (1.8) 中,添加了一些模型字段以利用 Postgres 数据类型。我对HStoreField 感兴趣,并且文档要求设置PG extension 以便在模型中使用新的HStoreFields。

我如何实际使用这个HStoreExtension 类来执行数据库扩展?

【问题讨论】:

    标签: python django postgresql


    【解决方案1】:

    HStoreField 文档要求您通过添加迁移来设置扩展。

    您可以使用命令创建一个空迁移

    ./manage.py makemigrations yourapp --empty
    

    在创建的迁移文件中,然后可以导入扩展,

    django.contrib.postgres.operations import HStoreExtension
    

    并将其添加到操作列表中。

    operations = [
        HStoreExtension(),
    ]
    

    创建此迁移后,您可以在模型中使用 HStoreField

    作为示例,请参阅 Django 的 postgres 测试中使用的 this migration file。它设置了两个扩展,HStoreExtension()UnaccentExtension

    【讨论】:

    • 我的项目中有一些应用程序,并非所有应用程序都会使用HStoreField。我应该使用./manage.py makemigrations app1 app2 app3 app4 --empty 创建迁移文件,还是命令行提供的应用程序并不重要,因为操作会影响整个数据库?已经感谢您的支持。
    • makemigrations 采用单个应用程序名称(例如我上面的答案中的yourapp),而不是多个应用程序名称。我怀疑您只需要为一个应用程序创建迁移,而不是您使用HStoreField 的每个应用程序。但是,您必须对此进行测试,因为我还没有尝试过。
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    相关资源
    最近更新 更多