#php #mysql
#php #mysql
Вопрос:
У меня есть веб-приложение, которое отлично работает на производственном сервере. Но это приложение развивается каждый день, и мне часто приходится приглашать сторонних разработчиков и фрилансеров для его обновления. Итак, каждый раз, когда я нахожу кого-то, я должен отправлять версию для разработки моего приложения и копию рабочей базы данных MySQL, откуда я вручную удалил все конфиденциальные данные.
Итак, вопрос в следующем: возможно ли создать скрипт для автоматического создания этой разрабатываемой версии базы данных?
ОБНОВЛЕНИЕ: Я попытаюсь извлечь некоторые данные. Например, у меня есть таблица Users:
User table:
name | email | role | phone |
-----------------------------------------------
user2 | mail@mail.com | guest | 1234567 |
user2 | mail@mail.com | admin | 1234567 |
user2 | mail@mail.com | manager | 1234567 |
user2 | mail@mail.com | topmanager | 1234567 |
Но, конечно, в этой таблице есть только данные реальных пользователей. И так далее, немного похожих таблиц.
Итак, я хочу создать скрипт, который выгружает всю производственную базу данных, удаляет некоторые важные и конфиденциальные таблицы, такие как пользователи, заказы, платежи и так далее. После этого скрипт помещает фиктивные данные в эти таблицы, например, данные пользователей, которые я ввел ранее.
Ответ №1:
Вы можете использовать mysql в командной строке.
ssh -C user@newhost "mysql -uUSER -pPASS -e 'create database NEW_DB_NAME;'"
amp;amp; mysqldump --force --log-error=mysql_error.log -uUSER -pPASS OLD_DB_NAME
| ssh -C user@remotehost "mysql -uUSER -pPASS NEW_DB_NAME"
Ответ №2:
Вы имеете в виду, что хотите предоставить им копию базы данных с анонимизированными некоторыми разделами?
Почему бы не написать что-то вроде:
UPDATE `mytable` SET `foo` = `bar`
как анонимизировать эти столбцы? Вы могли бы написать PHP-скрипт, который экспортирует базу данных, а затем выполняет это в любых соответствующих таблицах и столбцах.
Или я неправильно интерпретирую вопрос?
Ответ №3:
Если вы хотите предоставить общий доступ только к DDLS ваших таблиц (инструкции CREATE TABLE)
-
Найдите список таблиц, которыми вы хотите поделиться.
-
Напишите сценарий оболочки для входа в mysql и получите DDLS для каждой таблицы один за другим.
ИМЯ_ТАБЛИЦЫ ОПИСАНИЯ_1;
ИМЯ_ТАБЛИЦЫ ОПИСАНИЯ_2;
-
Перенаправьте выходные данные в файл.
-
Поделитесь этим файлом.
Комментарии:
1. Почему это так громоздко? Существует
--no-data
переключатель дляmysqldump
, который делает именно это.