虽然 Django 文档https://docs.djangoproject.com/en/3.1/ref/models/options/#management 提到元数据中的 Managed = False 字段用于不创建迁移
当我调用 makemigrations 时,我仍在进行迁移。
这是模型的元:
class FieldOpsBooking(models.Model):
.
.
class Meta:
managed = False
db_table = 'field_ops_booking'
Run Code Online (Sandbox Code Playgroud)
我在 makemigrations 之后得到了这个
python manage.py makemigrations
Migrations for 'user_analysis':
user_analysis/migrations/0001_initial.py
- Create model FieldOpsBooking
- Create model RewardManagementLeads
Migrations for 'od_engagement':
od_engagement/migrations/0001_initial.py
- Create model NormalisedTonnage
Run Code Online (Sandbox Code Playgroud)
它还创建 0001_initial.py 文件,并应用所有迁移。
任何帮助表示赞赏
Raz*_*ein 13
我用具有 Managed=False 的模型检查了自己的项目:是的,迁移文件中有一个条目,例如:
operations = [
migrations.CreateModel(
name='xyz',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
options={
'db_table': 'xyz_table',
'managed': False,
},
),
Run Code Online (Sandbox Code Playgroud)
但是:当您执行“makemigration”时,这不会在数据库级别创建新表。抱歉,如果坚持,但你原来的解决方案是绝对正确的!
这是来自关于抽象基类的 django 文档:“……因为它是一个抽象基类……并且不能直接实例化或保存。”
归档时间: |
|
查看次数: |
4123 次 |
最近记录: |