【问题标题】:Postgres Full Text Search field addition with Django migration使用 Django 迁移添加 Postgres 全文搜索字段
【发布时间】:2015-10-06 05:36:05
【问题描述】:

我已关注this tutorial,并将 PostgreSQL FTS 功能添加到我的 Django(我使用的是 1.8.1)项目的一张表中。

基本上,我在my_app 应用程序的my_table 表中有一个额外的fts_document 字段。

我想使数据库保持最新状态,而不必在每台机器上的 PostgreSQL shell 中手动复制和粘贴命令。 与教程不同的是,我没有实现 South 部分,因为我让 South 与当前实现发生冲突,并且还发现 Django 没有 native way 来执行这些迁移。

我找不到任何示例代码,所以我被困住了,需要帮助。 我没有发布示例代码,因为我遵循了教程中的确切结构和步骤。

【问题讨论】:

    标签: python django postgresql full-text-search schema-migration


    【解决方案1】:

    您可以使用RunSQL 操作实现相当于南迁移的功能。只需使用manage.py makemigration <app_label> --empty 创建一个空迁移,然后将其添加到新迁移文件中的operations

    operations = [
        migrations.RunSQL("CREATE FUNCTION etc.")
    ]
    

    详情请参阅documentation

    【讨论】:

    • 感谢@knbk!它说 如果你手动创建一个列,你应该在这里传递一个包含 AddField 操作的列表,以便自动检测器仍然具有模型的最新状态(否则,当你下次运行 makemigrations 时,它不会看到任何添加该字段的操作,因此将尝试再次运行它) 如何将新列声明为 tsvector 类型? p.s.你有一个错字,是makemigrations
    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 2019-05-16
    • 2012-07-25
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多