【发布时间】:2019-10-27 20:14:29
【问题描述】:
我正在尝试将自定义迁移添加到 django 应用程序。我希望自定义迁移不适用于“默认”数据库,而另一个自定义迁移仅适用于“默认”数据库。我应用了 django 文档中建议的方法,但迁移命令从未奏效。我该如何解决这个问题?感谢您的帮助。
Django 文档页面: https://docs.djangoproject.com/en/2.2/howto/writing-migrations/
我的代码(0001_initial.py,仅适用于“默认”数据库):
from django.db import migrations, models
def forwards(apps, schema_editor):
if schema_editor.connection.alias == 'default':
migrations.CreateModel(
name='Planets',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255)),
('description', models.TextField(blank=True)),
],
),
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.RunPython(forwards),
]
其他迁移(仅适用于非“默认”数据库):
from django.db import migrations, models
def forwards(apps, schema_editor):
if schema_editor.connection.alias != 'default':
migrations.CreateModel(
name='data_sources',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sql_query', models.TextField(default='')),
],
),
migrations.CreateModel(
name='query_history',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('query', models.TextField()),
('date', models.DateField(auto_now_add=True)),
],
),
class Migration(migrations.Migration):
dependencies = [
('universe','0001_initial')
]
operations = [
migrations.RunPython(forwards),
]
【问题讨论】:
标签: python sql django python-3.x migration