﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
35763	Setting the auto increment value of a database model breaks when you add a new field to the model	Kevin Renskers	Sachin Kundalwal	"Setting the auto increment value of a database model breaks when you add a new field to the model. It only breaks in SQLite.

I have simple model `Content`:

{{{
class Content(models.Model):
    name = models.CharField(max_length=255, blank=True)
}}}

In the initial migration I've added an extra operation:

{{{
migrations.RunSQL(""INSERT INTO sqlite_sequence (seq, name) VALUES (50000, 'content_content');""),
}}}

Now when I create my first model instance its ID starts at 50,001, as expected. However when I then add a second field to my `Content` model and create a migration, now my first model instance ID is 1 instead of 50,001. Somehow the `migrations.AddField` operation has undone the `sqlite_sequence` modification.

I have a repro here: https://github.com/kevinrenskers/django-seq-repro. 

It has two commits:

1. The initial commit where a `Content` model is added, and in the initial migration I set the initial auto increment value. A test is added to make sure the first model instance has ID 50,001, which passes.
2. The second commit adds a single field to the `Content` model (with the accompanying migration file), and now the test fails.

The test can be fixed by adding another `RunSQL` command to the second migration:
`migrations.RunSQL(""UPDATE sqlite_sequence SET seq = 50000 WHERE name = 'content_content'""),`

It seems like a bug that the auto increment modification is undone by the second migration.

Important to note: this only happens in SQLite. With PostgreSQL the query in the initial migration would be `ALTER SEQUENCE content_content_id_seq RESTART WITH 50000;`, and the test still passes after adding the new field to the `Content` model. Only with SQLite does it break and is the second operation to update `sqlite_sequence` necessary."	Bug	closed	Database layer (models, ORM)	5.1	Normal	invalid			Unreviewed	0	0	0	0	0	0
