diff options
| author | Samriddha9619 <sumitkumartripathi0@gmail.com> | 2025-09-23 01:27:30 +0530 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2025-09-29 08:59:15 +0200 |
| commit | 956455dc8a8654bad1264c39d02bd5ffafc7733d (patch) | |
| tree | 48377e5629cfc6f385ce99bca20400dd5a943b8d | |
| parent | f8e91d0104b58badcc45e39b12375a6092866db5 (diff) | |
[6.0.x] Fixed #35877, Refs #36128 -- Documented unique constraint when migrating a m2m field to use a through model.
Backport of daba609a9bdc7a97bcf327c7ba0a5f7b3540b46e from main.
| -rw-r--r-- | docs/howto/writing-migrations.txt | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/docs/howto/writing-migrations.txt b/docs/howto/writing-migrations.txt index d092aec6e8..3a818a0fda 100644 --- a/docs/howto/writing-migrations.txt +++ b/docs/howto/writing-migrations.txt @@ -336,7 +336,7 @@ model, the default migration will delete the existing table and create a new one, losing the existing relations. To avoid this, you can use :class:`.SeparateDatabaseAndState` to rename the existing table to the new table name while telling the migration autodetector that the new model has -been created. You can check the existing table name through +been created. You can check the existing table name and constraint name through :djadmin:`sqlmigrate` or :djadmin:`dbshell`. You can check the new table name with the through model's ``_meta.db_table`` property. Your new ``through`` model should use the same names for the ``ForeignKey``\s as Django did. Also if @@ -394,6 +394,14 @@ For example, if we had a ``Book`` model with a ``ManyToManyField`` linking to ), ), ], + options={ + "constraints": [ + models.UniqueConstraint( + fields=["author", "book"], + name="unique_author_book", + ) + ], + }, ), migrations.AlterField( model_name="book", |
