In a brief when I have two databases with different sets of models the sqlflush statement output ALTER TABLE .. AUTO_INCREMENT = 1; for all tables in an application.
The TRUNCATE commands are issued for the right tables.
The problem is quite importan for us as it breaks the test command.
I've created an application that demonstrate the problem. It has two databases: 'default' and 'second' and two models:
'ModelOnTheDefaultDB', 'ModelOnTheSecondDB'.
Here is how the output of syncdb and sqlflush looks like:
$ python manage.py syncdb
Creating table test_app_modelonthedefaultdb
$ python manage.py syncdb --database='second'
Creating table test_app_modelontheseconddb
$ python manage.py sqlflush
BEGIN;
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE `test_app_modelonthedefaultdb`;
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `test_app_modelonthedefaultdb` AUTO_INCREMENT = 1;
ALTER TABLE `test_app_modelontheseconddb` AUTO_INCREMENT = 1; -- This alter table should not be here
COMMIT;
$ python manage.py sqlflush --database='second'
BEGIN;
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE `test_app_modelontheseconddb`;
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `test_app_modelonthedefaultdb` AUTO_INCREMENT = 1; -- This alter table should not be here
ALTER TABLE `test_app_modelontheseconddb` AUTO_INCREMENT = 1;
COMMIT;