运行manage.py migrate --database = database时,在迁移过程中获取选定的数据库

时间:2019-04-01 07:58:26

标签: django django-models django-migrations

我进行了数据迁移,如下所示将条目加载到数据库中:

def load_groups(apps, _):
    Group = apps.get_model('auth', 'Group')

    Group(
        name='Admin'
    ).save()
    Group(
        name='Product Manager'
    ).save()
    Group(
        name='Developer'
    ).save()

migrations.RunPython(
    code=load_groups,
)

运行manage.py migrate时,此代码可以正常工作。

但是,如果我运行manage.py migrate --database=copy,迁移将应用于别名为copy的数据库,但是load_groups部分会尝试将别名保存为数据库default

我知道我可以设置保存到组创建的位置,但是我似乎找不到找到使用的数据库别名的方法。

任何想法都将不胜感激。

settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django_prometheus.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'copy': {
        'ENGINE': 'django_prometheus.db.backends.mysql',
        'NAME': 'dev',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': 3306,
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

0 个答案:

没有答案