2π
The behaviour you describe is explicitly mentioned in the docs:
syncdb will only create tables for models which have not yet been
installed. It will never issue ALTER TABLE statements to match changes
made to a model class after installation. Changes to model classes and
database schemas often involve some form of ambiguity and, in those
cases, Django would have to guess at the correct changes to make.
There is a risk that critical data would be lost in the process.
What you are after is a tool for database migrations and that is a large problem mostly solved π
So yes, as Marcin said, your are looking for South.
Alternatively you could try Nashvegas and for small changes even sql_diff
which is part of django-extensions
is a viable option.