]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.cms/src/org/argeo/slc/backup/vfs/MySqlBackup.java
Adapt to new build system
[gpl/argeo-slc.git] / org.argeo.slc.cms / src / org / argeo / slc / backup / vfs / MySqlBackup.java
1 package org.argeo.slc.backup.vfs;
2
3 import org.apache.commons.vfs2.FileObject;
4
5 /** Backups a MySQL database using mysqldump. */
6 public class MySqlBackup extends OsCallBackup {
7 private String mysqldumpLocation = "/usr/bin/mysqldump";
8
9 private String dbUser;
10 private String dbPassword;
11 private String dbName;
12
13 public MySqlBackup() {
14 }
15
16 public MySqlBackup(String dbUser, String dbPassword, String dbName) {
17 this.dbUser = dbUser;
18 this.dbPassword = dbPassword;
19 this.dbName = dbName;
20 init();
21 }
22
23 @Override
24 public void init() {
25 if (getName() == null)
26 setName(dbName + ".mysql");
27 super.init();
28 }
29
30 @Override
31 public void writeBackup(FileObject targetFo) {
32 if (getCommand() == null)
33 setCommand(mysqldumpLocation
34 + " --lock-tables --add-locks --add-drop-table"
35 + " -u ${dbUser} --password=${dbPassword} --databases ${dbName}");
36 getVariables().put("dbUser", dbUser);
37 getVariables().put("dbPassword", dbPassword);
38 getVariables().put("dbName", dbName);
39
40 super.writeBackup(targetFo);
41 }
42
43 public void setDbUser(String dbUser) {
44 this.dbUser = dbUser;
45 }
46
47 public void setDbPassword(String dbPassword) {
48 this.dbPassword = dbPassword;
49 }
50
51 public void setDbName(String dbName) {
52 this.dbName = dbName;
53 }
54
55 public void setMysqldumpLocation(String mysqldumpLocation) {
56 this.mysqldumpLocation = mysqldumpLocation;
57 }
58
59 }