3

Pythonコードからの移行を実行することは可能ですか?ターミナルコマンドを使用したくない(実際には使用できません):

venv/bin/python src/manage.py migrate myapp

動的に作成されたデータベースでビジネスロジックの一部としてPythonコードから実行する必要があります。

これは私がこれまでに持っているものです:

db_name = uuid.uuid4()
from settings.local import DATABASES
new_database = {}
new_database['ENGINE'] = 'django.db.backends.mysql'
new_database['NAME'] = db_name
new_database['USER'] = DATABASES["default"]["USER"]
new_database['PASSWORD'] = DATABASES["default"]["PASSWORD"]
new_database['HOST'] = DATABASES["default"]["HOST"]
new_database['PORT'] = DATABASES["default"]["PORT"]
import settings
database_id = str(uuid.uuid4())
settings.DATABASES[database_id] = new_database
from django.core.management import call_command
call_command('migrate', 'catalogue', database=database_id)

しかし、私は得ます:

KeyError: '28a4eb10-91e4-4de8-8a74-15d72f8245ef'
4

1 に答える 1

8

はい、できます。Djangoアプリ内から呼び出されたと仮定します。

from django.core.management import call_command

call_command('migrate', 'myapp')
于 2013-01-15T15:17:46.627 に答える