У меня 297 файлов sql, я хочу импортировать их в mysql, но они должны быть в разных базах данных.
Я попытался:
find . -name '*.sql' | awk '{ print "source",$0 }' | mysql -u <db_user> -p --batch -D <database_name>
но это вызывает ошибку, потому что в файлах sql есть такие команды, как:
DROP TABLE IF EXIST <table_name>
поэтому мне нужен сценарий, который должен создавать новую базу данных для каждого файла sql. Как я могу это сделать?
Хорошо, я сделал это с помощью написанного мной скрипта на Python.
import os
for filename in os.listdir('<path_to_folder_contains_sqls>'):
print 'importing db: ' + filename
dbname = 'db_' + str(os.path.splitext(filename)[0])
os.system('mysql -e "create database ' + dbname + '; use ' + dbname + '; source ' + filename + ';"')