Копирование базы данных MYSQL с помощью Python/Django

Мне нужно создать копию базы данных на моем MySQL Server с помощью Django Application

После небольшого исследования я нашел mysqldump как лучший подход

backup_file_path = f"/tmp/{src_database_name}_backup.sql"

backup_db_command = f"mysqldump -h {SQL_DB_HOST} -P 3306 -u {SQL_DB_USER} -p{SQL_DB_PASSWORD} {src_database_name} > {backup_file_path}"

print(backup_db_command)  # TODO: remove

with os.popen(backup_db_command, "r") as p:
    r = p.read()
    print(f"Backup Output: {r}")

restore_command = f"mysql -u root -p{SQL_DB_PASSWORD} {dest_database_name} < {backup_file_path}"

with os.popen(restore_command, "r") as p:
    r = p.read()
    print(f"Restore Output: {r}")

Мои запросы:

  1. Есть ли проблемы с этим подходом
  2. Есть ли лучшие подходы для создания копии БД с использованием либо python, либо Django ORM

Вы можете попробовать использовать django-admin, утилиту командной строки Django для dumpdata и loaddata.

Используйте следующую команду для сброса данных

  • django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]] -o database_backup.sql

Используйте следующую команду для загрузки данных

  • django-admin loaddata database_backup.sql

docs-. dump data загрузка данных

Вернуться на верх