我正在寻找一些帮助,以确定我的厨师食谱的优先顺序。
配方应该在数据库中导入一个sql转储,然后对数据库执行2个mysql查询。
我在用厨师独奏。
第一个mysql_数据库操作:导入转储的查询运行良好,但其他两个查询似乎没有任何作用,因为转储似乎仍在导入数据库中的数据,并且运行时数据不在数据库中。随机执行?
我的食谱:
mysql_database node['wp-dev']['database'] do
connection ({:host => "localhost", :username => 'root',
:password => node['mysql']['server_root_password']})
#NOW THE SQL SCRIPT importing the dump - WORKING
sql { ::File.open("/tmp/database.sql").read }
#NOW THE 2 QUERIES - Not working at first Run
sql "UPDATE WORKING QUERY WHEN COPIED IN MYSQL 1"
sql "UPDATE WORKING QUERY WHEN COPIED IN MYSQL 2"
action :query
end
如果要在运行查询之前检查导入是否已完成,我无法确定如何修复此问题,或者如何仅使用_。
一种解决方案是使用不同的mysql_数据块,完成后一个块通知另一个块。
mysql_database 'insertTestData' do
connection mysql_connection_info
database_name node['some']['database']
sql { ::File.open(/somePath/testData.sql).read }
action :nothing
end
mysql_database 'createTables' do
connection mysql_connection_info
database_name node['some']['database']
sql { ::File.open(/somePath/tableCreate.sql).read }
action :query
notifies :query,"mysql_database[insertTestData]"
end
您需要为正在执行的每个sql语句创建一个单独的mysql_数据库块。不能在同一个查询中有多个sql查询。