在Vagrant销毁后保留数据库数据的最佳/可接受的做法是什么?
我应该为数据库数据创建共享文件夹吗?如果是这样(默认情况下)ubuntu存储这样的数据?
我忘了提及我的主机和客户操作系统'是Ubuntu,我指的是MySql
答案 0 :(得分:4)
每当我vagrant destroy
实例时,我都需要一种备份数据库的方法,或者如果框中发生了某些事情,我需要杀死进程,从而丢失数据。我主要使用CMS系统并且持久保存后端数据库非常重要。
我已经在共享一个db
文件夹,其中包含配置时使用的sql文件。我安装了vagrant-triggers
插件,并在运行vagrant destroy
命令时运行mysqldump.sh脚本文件。
config.trigger.before :destroy do
info "Dumping the database before destroying the VM..."
run_remote "bash /home/vagrant/db/mysqldump.sh"
end
mysqldump.sh文件将mysqldump命令运行到单独的backup.sql文件。
mysqldump -u root database > /home/vagrant/db/backup.sql
答案 1 :(得分:2)
这取决于您使用的RDBMS。
对于Ubuntu上的MySQL,你可以简单地备份(tar
或rsync
到远程主机)/ var / lib / mysql文件夹(当mysql没有运行时)及其配置文件{{ 1}}。
对于PostgreSQL,它类似,数据库文件通常在cd /etc/mysql
下。请参阅File System level backup
注意:请避免使用默认
/usr/local/pgsql/data
在来宾和主机之间共享大量文件,因为它已知存在性能问题。
答案 2 :(得分:0)
在框外映射数据库数据似乎是一个很好的解决方案:
[Homestead] Ideas on persisting databases upon vagrant destroy