如何在django迁移中获取当前数据库?

时间:2015-07-17 12:27:50

标签: python django python-3.x database-migration

我正在django中编写一个非常自定义的迁移,我想让它与

一起使用
django-admin migrate --database databse_name

命令。由于我正在创建自定义光标,因此默认设置对我不起作用。有没有合理的方法让它发挥作用?

2 个答案:

答案 0 :(得分:2)

您可以使用db.db_alias访问它。希望它有所帮助!

答案 1 :(得分:1)

这是“让我们回答真正的老问题”的时间!

下面的信息来自当前django 3.0 docs

您的迁移函数将使用第二个参数,它是一个SchemaEditor对象。这将为您提供命令数据库。

def forwards_func(apps, schema_editor):
    # We get the model from the versioned app registry;
    # if we directly import it, it'll be the wrong version
    Country = apps.get_model("myapp", "Country")
    db_alias = schema_editor.connection.alias
    Country.objects.using(db_alias).bulk_create([
        Country(name="USA", code="us"),
        Country(name="France", code="fr"),
    ])