【问题标题】:How to import Production Data from Development Database?如何从开发数据库导入生产数据?
【发布时间】:2010-08-02 06:21:57
【问题描述】:

最近,我学习开发一个 Rails 应用程序。 现在,我有一个问题。我想更改为生产模式。但我不想手动将我的数据复制到开发数据库中。 我应该如何轻松地做到这些? 我使用 mysql 和 Mac os 和 rails 3 beta。

【问题讨论】:

  • 如果您查看其他地方,您会看到类似 sachinrathore11 的答案。平台无关紧要——都是 MySQL。 >< 是“管道”命令。 > 表示程序的输出将通过管道传输到文件中(命名在符号右侧),而< 表示程序输入将通过管道来自文件。 mysqldump 将数据库导出为一系列创建表和插入语句,这些语句将重现模式和内容,但这需要加载到mysql。您可以在这里阅读更多详细信息:dev.mysql.com/doc/refman/5.1/en/mysqldump.html
  • 我是新手。这对我来说是一个很大的帮助。谢谢。

标签: mysql ruby-on-rails


【解决方案1】:

以下是在 mysql 中转储/加载数据库的基本命令:

转储数据库:

$ mysqldump your_dev_db_name > your_db_dump.sql

加载转储:

$ mysql your_production_db_name < your_db_dump.sql

【讨论】:

    【解决方案2】:

    如果您使用 Capistrano 进行部署,您也可以通过 ruby​​ gem capistrano-db-tasks gem 完成此操作。

    显然,知道如何通过底层的 mysqldump 命令来完成绝对是很棒的,但是一旦你学会了这一点,在我个人看来,使用 gem 的工作流程会更好。使用 gem,您可以快速推送和拉取所有环境的数据,我在下面列出了更多优势。我默认将此添加到每个 Rails 应用程序,因为我不断将 prod 数据拉到本地。

    优势

    • 不必通过 SSH 自动连接到您的服务器
    • 无需从您的服务器自动下载转储文件
    • 无需离开终端即可在任务中编写脚本
    • 在本地、舞台和生产环境之间同步、推送和拉取数据的速度要快得多
    • 独立于数据库,可与 mysql、Postgres 等配合使用。
    • 新/初级开发人员更容易上手

    这允许您在终端中针对不同环境运行推送/拉取命令:

    cap production db:pull
    cap production db:push # probably less common not something I would recommend
    cap staging db:pull
    cap staging db:push
    

    我创建了一个YouTube video demonstrating this gem and its advantages,如果您想了解有关使用此 gem 的更多信息,它可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2023-04-04
      • 2011-06-12
      相关资源
      最近更新 更多