我手动丢弃了一张桌子,因为在改变模型时我犯了一个非常糟糕的错误。所以无论如何......我怎样才能重新创造它?我试过了:
- Delete the migrate folder of that app
- delete from django_migrations where app='main'
- makemigrations main
- migrate main
但它停在第一桌。哪个是:-(在这种情况下我的表message
没有重新创建。在0001_initial.py
我的表格中有正确的条目
migrations.CreateModel(
name='Message',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('unread', models.BooleanField(default=True)),
('subject', models.CharField(max_length=120)),
('freetext', models.TextField(null=True)),
('from_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='from_user', to=settings.AUTH_USER_MODEL)),
('to_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='to_user', to=settings.AUTH_USER_MODEL)),
],
),
有没有办法手动启动?
答案 0 :(得分:2)
我认为最好的方法是编写自己的迁移文件。
在迁移文件夹下,使用 DeleteModel 方法创建新的迁移文件。例如,如果您之前的迁移文件名是 '0065_auto_20210318_0000'
,那么您的文件可能是:
class Migration(migrations.Migration):
dependencies = [
('my_app', '0065_auto_20210318_0000'),
]
operations = [
migrations.DeleteModel(
name='MyModel',
),
]
答案 1 :(得分:1)
下次回滚时:
进入应用中的迁移文件夹。
查找要返回的迁移文件。 (例如0012_post_category.py)
进入终端写:./ manage.py迁移yourAppName 0012(这只是一个示例号)并点击回车
如果一切顺利的话。删除迁移文件夹中此号码后面的其他迁移。
不要只是删除迁移!希望有所帮助。