Я координирую ряд проектов по разработке PHP. Я настроил рабочий процесс, в котором все разработчики работают с одним хранилищем Subversion. Когда они будут готовы взглянуть на свое приложение на промежуточных серверах, загрузите дамп базы данных MySQL и создайте тег.
Я настроил сценарий оболочки, который автоматически развернет код PHP в DocumentRoot и настроит соответствующие разрешения. Теперь мне нужно сценарий загрузки снимка базы данных.
При первой настройке нового приложения я создаю базу данных и учетную запись пользователя следующим образом:
CREATE DATABASE foodb;
GRANT ALL ON foodb.* TO user1@localhost IDENTIFIED BY 'password';
Теперь, когда разработчики проверяют новую версию дампа MySQL в Subversion, мне нужно удалить старую БД и восстановить новый снимок. В настоящее время я использую следующий рабочий процесс.
1.) Войдите в MySQL как root
DROP DATABASE foodb;
CREATE DATABASE foodb;
GRANT ALL ON foodb.* TO user1@localhost IDENTIFIED BY 'password';
2.) Вход в MySQL "user1"
mysql -h localhost -u user1 --password="drumitFed" foodb << new-db-dump-from-subversion.sql
Я хотел бы объединить шаги 1 и 2 выше. Я думаю, это будет выглядеть примерно так. Код должен не только удалять таблицы, но также и представления, индексы и хранимые процедуры.
обратите внимание, что он должен работать как пользователь базы данных, а не как суперпользователь, и у пользователя базы данных нет прав DROP DATABASE или CREATE DATABASE.
mysql -h localhost -u user1 --password="password" foodb << delete-all-tables-and-views.sql
mysql -h localhost -u user1 --password="password" foodb << new-db-dump-from-subversion.sql