Django编写数据库迁移转发函数issu

2024-04-27 03:45:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试向django应用程序添加自定义迁移。我希望自定义迁移不能与“default”数据库一起工作,而另一个自定义迁移只能与“default”数据库一起工作。我应用django文档中建议的方法,但迁移命令从未起作用。如何解决此问题?谢谢你的帮助。你知道吗

Django文档页: https://docs.djangoproject.com/en/2.2/howto/writing-migrations/

我的代码(0001_初始.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),
    ]

Tags: djangonameid数据库truedefaultfieldsauto