【问题标题】:RoR - MySQL - Writing a rake task to inherit from another sql fileRoR - MySQL - 编写一个 rake 任务以从另一个 sql 文件继承
【发布时间】:2017-09-16 19:55:14
【问题描述】:

我从终端使用以下命令:

mysql -u root -p sample_development < sample.sql

有没有一种简单的方法可以让我将此命令包含在 rake 任务中?我找到了一些旧答案Is there a rake task for backing up the data in your database?,其中包括大约 30 行代码,但是有没有更简单的方法可以将这一行转换为 rake 任务?

提前致谢。

【问题讨论】:

  • 为什么要将这个简单的命令翻译成 Rake 任务?你在优化什么? system 电话或反引号是一种选择吗?
  • 在您开始使用该应用程序之前需要运行一些设置说明,并且我们有几个人正在开发它 - 我正在尝试将它们全部组合成一个人们无法完成的 rake 任务搞砸了,但如果有办法使用您的任何方法解决它,请告诉我

标签: mysql ruby-on-rails ruby rake rake-task


【解决方案1】:

有几个 different ways 可以从 Ruby 运行命令行指令。一个非常简单的解决方案可能如下所示(注意反引号):

task :import do
  # some code
  `mysql -u root -p sample_development < sample.sql`
  # more code
end

【讨论】:

    【解决方案2】:

    您要求执行 rake 任务,但链接指向 capistrano 任务。 我猜你想在本地运行你的导入,所以 rake 任务是要走的路。

    Rake 任务是用 Ruby 编写的。 您可以使用以下命令在 ruby​​ 中嵌入任何 shell 命令:

    这就是 rake 任务的样子:

        # lib/tasks/db.rake
        namespace :db do
          task import: :environment do
            `mysql -u root -p sample_development < sample.sql`
          end
        end
    

    像这样使用它:

        $ rake db:import
    

    【讨论】:

      猜你喜欢
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多