备份和恢复Redmine¶
备份¶
Redmine备份应包括- 数据库
- 附件(默认存储在安装目录下的
files
目录中)
备份数据库¶
MySQL¶
可以使用mysqldump
命令将MySQL数据库内容备份到文本文件。例如
/usr/bin/mysqldump -u <username> -p<password> -h <hostname> <redmine_database> > /path/to/backup/db/redmine.sql
可以在文件config/database.yml
中找到<username>
、<password>
、<hostname>
和<redmine_database>
。根据您的数据库安装,可能不需要<host_name>
。
PostgreSQL¶
可以使用pg_dump
命令将PostgreSQL数据库内容备份到文本文件。以下是一个示例
/usr/bin/pg_dump -U <username> -h <hostname> -Fc --file=redmine.sqlc <redmine_database>
可以在文件config/database.yml
中找到<username>
、<hostname>
和<redmine_database>
。根据您的数据库安装,可能不需要<hostname>
。在需要时,pg_dump
命令将提示您输入密码。
SQLite¶
SQLite数据库全部包含在一个文件中,因此您可以通过将其复制到另一个位置来备份它们。
您可以通过查看config/database.yml
来确定SQLite数据库的文件名。
备份附件¶
所有文件上传都存储在attachments_storage_path
(默认为files/
目录)。您可以复制此目录的内容到另一个位置以轻松备份。
警告:attachments_storage_path
可能指向除files/
之外的目录。请确保检查config/configuration.yml
中的设置,以免创建一个无用的备份。
示例备份脚本¶
以下是一个简单的shell脚本,可用于日常备份(假设您使用的是MySQL数据库)
# Database /usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%Y-%m-%d`.gz # Attachments rsync -a /path/to/redmine/files /path/to/backup/files
恢复¶
恢复数据库¶
MySQL¶
例如,如果您有一个名为2018-07-30.gz
的gzip压缩备份文件,则可以使用以下命令恢复数据库
gunzip -c 2018-07-30.gz | mysql -u <username> --password <redmine_database> Enter password:
PostgreSQL¶
当使用pg_dump
命令的-Fc
选项时,就像上面的示例一样,则需要使用pg_restore
命令
pg_restore -U <username> -h <hostname> -d <redmine_database> redmine.sqlc
否则可以使用psql
恢复文本文件
psql <redmine_database> < <infile>
SQLite¶
从备份位置复制数据库文件。
由 Gerd Pokorra 更新 约6年前 · 9次修订