Database 用于导入数据库的路径
我已经学到了很多关于设置流浪者与厨师,我击中了墙,因为我是新的ruby-vagrant-chef,我不是最大的开发人员。主要是前端,但试图建立一个更好的发展环境 我已经搜索并找到了很好的答案,但只剩下最后一个问题 我有这段代码创建数据库,但我不知道从何处导入数据库Database 用于导入数据库的路径,database,import,chef-infra,vagrant,Database,Import,Chef Infra,Vagrant,我已经学到了很多关于设置流浪者与厨师,我击中了墙,因为我是新的ruby-vagrant-chef,我不是最大的开发人员。主要是前端,但试图建立一个更好的发展环境 我已经搜索并找到了很好的答案,但只剩下最后一个问题 我有这段代码创建数据库,但我不知道从何处导入数据库 # import an sql dump from your app_root/data/dump.sql to the my_database database execute "import" do command "mysq
# import an sql dump from your app_root/data/dump.sql to the my_database database
execute "import" do
command "mysql -u root -p\"#{node['mysql']['server_root_password']}\" my_database < /chef/vagrant_db/database-name.mysql"
action :run
end
#将sql转储从您的应用程序_root/data/dump.sql导入my_数据库
执行“导入”操作
命令“mysql-u root-p\”{node['mysql']['server\u root\u password']}\“我的数据库”
所以我需要知道路径应该从哪里开始,顶层主目录,从我运行vagrant的顶层文件夹开始?它目前所在的地方和其他一些尝试过的地方都不起作用
任何想法都很好。我已经在谷歌搜索了这么多,以至于我几乎准备放弃了
谢谢
Tim我建议使用
Chef::Config[:file\u cache\u path]
来实现此目的。假设您希望从远程web服务器获取该SQL文件:
db = File.join(Chef::Config[:file_cache_path], 'database.mysql')
remote_file db do
source 'http://my.web.server/db.mysql
action :create_if_missing
notifies :run, 'execute[import]', :immediately
end
execute "import" do
command "mysql -u root -p\"#{node['mysql']['server_root_password']}\" my_database < #{db}"
action :nothing
end
db=File.join(Chef::Config[:File\u cache\u path],'database.mysql')
远程文件数据库
来源'http://my.web.server/db.mysql
操作:如果缺少,则创建
通知:立即运行“执行[import]”
结束
执行“导入”操作
命令“mysql-u root-p\”#{node['mysql']['server\u root\u password']}\“my#u database<#{db}”
行动:没什么
结束
这将:
remote\u文件
更改为cookbook\u文件
或一些自定义资源以获取数据库)/Vagrant
文件所在的目录装载到主机(本地笔记本电脑)上的VM(来宾计算机)上的/Vagrant
。您可以在本地笔记本电脑的任何位置安装其他位置(称为“共享文件夹”)
奖金
如果您正在本地计算机上运行数据库,则实际上可以通过Vagrant:)共享文件夹共享套接字。然后你甚至不需要在你的虚拟机上安装MySQL——它将使用在你的主机笔记本电脑上运行的MySQL
资料来源:
- 我写了很多文章:)