I had to move a few models from one app to another, and I followed the instructions on this answer https://stackoverflow.com/a/26472482/188614.
Basically I used the CreateModel
migrations generated by python manage.py makemigrations
, wrapped them inside state_operations
, and added the 'db_table'
meta option with the old table's name.
Everything works fine, the models on the new_app
are corretly using the old tables.
But if I run python manage.py makemigrations new_app
it creates an AlterModelTable
migration for each table renaming them as None
, like this:
migrations.AlterModelTable(
name='cidade',
table=None,
),
Is this a bug, or expected behaviour?
I just had this problem myself.
The answer you were following includes this in the migration in new_app
:
options={
'db_table': 'newapp_themodel',
},
This options dict should reflect the values set by the Meta
class on your model. In my case, I was not setting db_table
in Meta, but had blindly copied the options code.
You need to update the options in your migration for newapp
to either remove the db_table
value if you don't set it in Meta
or to match the value you set in Meta
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With