簡體   English   中英

數據庫遷移中的djongo RunPython

[英]djongo RunPython in database migration

有一個 django 應用程序將 djongo 作為數據庫驅動程序。 我想使用RunPython添加自定義遷移。 但我不明白如何到達 pymongo 客戶端。 這是代碼:

from django.db import migrations


def _custom_migration(apps, schema_editor):
    db = ... # what to put here?
    db.collection1.update_many({}, [{'$set': {"field2": "$field1.id"}}])


class Migration(migrations.Migration):
    operations = [
        migrations.RunPython(_custom_migration),
    ]

你可以訪問 PyMongo:

  • 來自schema_editor.connection.client_connection客戶端MongoClient實例)。
  • 來自schema_editor.connection.connectiondbDatabase實例)。
def _custom_migration(apps, schema_editor):
    db = schema_editor.connection.connection
    db.collection1.update_many({}, [{'$set': {"field2": "$field1.id"}}])

來源參考:

來自文檔https://pymongo.readthedocs.io/en/stable/tutorial.html試試這個:

from pymongo import MongoClient

def _custom_migration(apps, schema_editor):
    client = MongoClient('localhost', 27017)
    db = client.test_database
    db.collection1.update_many({}, [{'$set': {"field2": "$field1.id"}}])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM