Django:db_index和makemigrations

时间:2015-12-03 17:54:46

标签: django

我想在我的模型中向现有字段添加一些db_index。我刚刚将db_index=True添加到模型中。

我在想我需要运行python manage.py migrate才能将它们应用到数据库中。我的问题是没有检测到任何更改,因此没有创建迁移。这是正常行为吗?

或者是否有我不知道的特定行为?

谢谢。

2 个答案:

答案 0 :(得分:1)

如果您对SQL有足够的了解,您仍然可以使用RunSQL手动创建迁移。

例如:(使用PostgreSQL语法)

class Migration(migrations.Migration):

    dependencies = [
        ('your_app', '0001_initial'), # or last mig
    ]

    operations = [
        migrations.RunSQL("CREATE INDEX my_table_my_column_ind ON my_table (my_colum)"),
    ]

相关:Creating Partial Indexes with Django 1.7

答案 1 :(得分:0)

您可以使用index_together

class YourModel(models.Model):
    # ...

    class Meta:
        index_together = ["field_that_needs_index"]

然后makemigration应该工作