I have an existing project with models (Users and Books). I would like to add a ManyToMany(M2M) field to the existing model Books, but the syncbb command does not do this.<
syncdb does not modify existing tables (models). What's going on is that even though adding a M2M does not modify a table (it should just add a join table), the syncdb is not creating the new table because it sees that the model is already in the db and it is skipping it. See the syncdb docs
[syncdb] Creates the database tables for all apps in INSTALLED_APPS whose tables have not already been created.
It is a bit confusing, since technically this table hasn't been created, but the behavior makes sense "Has the table for this model been created? Yep! Then don't sync it."
In general, django does not provide a mechanism to migrate database schemas (ie add columns and such). So, you have to do that sort of a thing via raw SQL or by using a third party tool. I highly recommend checking out South.