我想my.db在db/目录中生成该文件.我不熟悉如何在常规中构建file和directory完成任务task.救命!
task :create, [:name, :type] do |t, args|
args.with_defaults(:name => "mydb", :type => "mysql")
directory "db"
file "db/my.db" => "db" do
sh "echo 'Hello db' > db/my.db"
end
puts "Create a '#{args.type}' database called '#{args.name}'"
end
Run Code Online (Sandbox Code Playgroud)
rob*_*les 13
以下代码将创建数据库和文件,除非已存在...
如果您希望在单个rake任务中使用命令,则可以使用此选项
Dir.mkdir("db") unless Dir.exists?("db")
unless File.exists?("db/my.db")
File.open("db/my.db", 'w') do |f|
f.write("Hello db")
end
end
Run Code Online (Sandbox Code Playgroud)
如果你想使用rake提供的文件任务,你需要这样做......
# Rakefile
directory "db"
file "db/my.db" => 'db' do
sh "echo 'Hello db' > db/my.db"
end
task :create => "db/my.db" do
end
Run Code Online (Sandbox Code Playgroud)
在这个例子中,你真正告诉rake创建名为"db"和"db/my.db"的任务,它们具有创建目录或文件的副作用.
希望这会有所帮助,对不起最初的困惑:)