Копирование базы данных 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}")
Мои запросы:
- Есть ли проблемы с этим подходом
- Есть ли лучшие подходы для создания копии БД с использованием либо 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 загрузка данных