MYSQL Database Copy Using Python/Django
I need to create a copy of the database in my MySQL Server using Django Application
After a little research, i found mysqldump as the better approach
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}")
My Queries:
- Any issues with this approach
- Any better approaches to do a copy of DB using Either python or Django ORM
You can try Using django-admin, Django’s command-line utility for dumpdata and loaddata.
Use the following command to dump data
- django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]] -o database_backup.sql
Use the following command to load data
- django-admin loaddata database_backup.sql