2015-02-11 6 views
0

Я использую Java и MySQL с Appserv. У меня есть файл базы данных с именем «modb.sql» (в определенном каталоге относительно местоположения моей программы), и мне часто приходится отказаться от старой базы данных, создать новую базу данных (с тем же именем каждый раз, внутри phpMyAdmin) и импортировать файл modb.sql в новую БД.Таблица команд командной строки Appserv

Есть ли способ автоматизировать этот процесс и включить его в программу или внутри установочного файла? Вместо того, чтобы делать это вручную, я или пользователь.

Я могу использовать другой менеджер баз данных MySQL или C# вместо Java, если это позволит автоматическому процессу.

+0

Выполнение быстрого поиска, я поднял эту страницу http://www.toadworld.com/platforms/mysql/w/wiki/6151.mysql-batch-imports.aspx, которая, вероятно, имеет все команды. Поработайте над этим и опубликуйте попытку сделать пакетный файл. Укажите любые ошибки или области, на которые вы застряли. – user4317867

ответ

0

Вы можете сделать все это из командной строки Windows или через запланированную задачу. У меня нет Appserv, поэтому я не могу предоставить вам все точные местоположения пути к файлу, которые могут отличаться в зависимости от места установки. Вы могли бы технически сделать это и из приложения Java, но это много накладных расходов и не автоматизирует его, как задача планирования.

В основном вы вызываете команду mysql.exe непосредственно из задачи расписания - или из командного файла.

Во-первых, давайте создадим новый файл SQL, возможно, названный DropAndCreateMoDb.sql. Поместите свои команды на падение (DROP DATABASE ...) и заново создайте базу данных здесь. Конечно, команда точного сброса зависит от того, что вы называете своей базой данных, а команда create сильно зависит от структуры, созданной modb.sql; вы также создадите любые разрешения, которые вам нужны здесь. Это автоматизирует процесс опускания и воссоздания.

Напишите командный файл. Вам действительно не нужно это делать, вы можете дважды вызвать MySQL из задачи расписания, но мы пытаемся сделать это правильно. Это не проверено, и, очевидно, вы захотите заменить правильные пути и имя пользователя/пароль MySQL - я предлагаю создать учетную запись для обслуживания, чтобы ваши полные учетные данные не были в пакетном файле; обычные отказы применять относительно правильно обеспечения безопасности вашего аккаунта), но, возможно, что-то вроде:

@ECHO OFF C:\Program Files\Appserv\MySQL.exe -u foo -p bar < C:\data\DropAndCreateMoDb.sql C:\Program Files\Appserv\MySQL.exe -u foo -p bar < C:\data\modb.sql

Очевидно, что не улавливает любые ошибки и ваше имя пользователя и пароль в незашифрованном здесь, но до тех пор, как это на вашей локальной машине разработки в целях развития, и вы знаете и понимаете риски, она будет работать.

На этом этапе вы можете дважды щелкнуть файл .bat, и он должен сбросить и воссоздать вашу базу данных. Чтобы закончить его и полностью автоматизировать, вы добавите запланированную задачу. Перейдите на панель управления «Запланированные задания» и добавьте новую задачу. Скажите ему путь к вашему новому DropAndRecreate.bat или тому, что вы решили назвать, сообщите Windows, когда вы хотите запустить эту задачу, и теперь она полностью автоматизирована.

Здесь много переменных, которые делают специфику реализации очень зависимой от вашей точной конфигурации и так далее. Убедитесь, что вы понимаете, что делает каждый шаг, а не просто копирование и вставка.

Смежные вопросы