]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - argeo/cms/internal/backup/MySqlBackup.java
2 * Copyright (C) 2007-2012 Argeo GmbH
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.cms
.internal
.backup
;
18 import org
.apache
.commons
.vfs2
.FileObject
;
20 /** Backups a MySQL database using mysqldump. */
21 public class MySqlBackup
extends OsCallBackup
{
22 private String mysqldumpLocation
= "/usr/bin/mysqldump";
24 private String dbUser
;
25 private String dbPassword
;
26 private String dbName
;
28 public MySqlBackup() {
31 public MySqlBackup(String dbUser
, String dbPassword
, String dbName
) {
33 this.dbPassword
= dbPassword
;
40 if (getName() == null)
41 setName(dbName
+ ".mysql");
46 public void writeBackup(FileObject targetFo
) {
47 if (getCommand() == null)
48 setCommand(mysqldumpLocation
49 + " --lock-tables --add-locks --add-drop-table"
50 + " -u ${dbUser} --password=${dbPassword} --databases ${dbName}");
51 getVariables().put("dbUser", dbUser
);
52 getVariables().put("dbPassword", dbPassword
);
53 getVariables().put("dbName", dbName
);
55 super.writeBackup(targetFo
);
58 public void setDbUser(String dbUser
) {
62 public void setDbPassword(String dbPassword
) {
63 this.dbPassword
= dbPassword
;
66 public void setDbName(String dbName
) {
70 public void setMysqldumpLocation(String mysqldumpLocation
) {
71 this.mysqldumpLocation
= mysqldumpLocation
;