If you have customised an app, but have not touched the models nor migrations,
you’re best off copying the migrations from Oscar. This approach has the
advantage of pulling in any data migrations.
Find the updated(!) Oscar in your virtualenv or clone the Oscar repo at the
correct version tag. Then find the migrations, copy them across, and migrate as
usual. You will have to adapt paths, but something akin to this will work:

At this point, you have essentially forked away from Oscar’s migrations. Read
the release notes carefully and see if it includes data migrations. If not,
it’s as easy as:

./manage.pymakemigrationsshipping

to create the appropriate migration.

But if there is data migrations, you will need to look into what they do, and
likely will have to imitate what they’re doing. You can copy across the
data migration, but you have to manually update the dependencies.

If there’s no schema migrations, you should set the data migration to depend
on your last migration for that app. If there is a schema migration, you
will have to imitate the dependency order of Oscar.

Feel free to get in touch on the mailing list if you run into any problems.