如何从开发数据库导入生产数据?

时间:2010-08-02 06:21:58

标签: mysql ruby-on-rails

最近,我学习了开发rails应用程序。 现在,我有一个问题。我想换成生产模式。但我不想手动在开发数据库中复制我的数据。 我该怎么办? 我使用mysql和Mac os和rails 3 beta。 TKS。

2 个答案:

答案 0 :(得分:6)

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

转储数据库:

$ mysqldump your_dev_db_name > your_db_dump.sql

加载转储:

$ mysql your_production_db_name < your_db_dump.sql

答案 1 :(得分:0)

如果您使用Capistrano进行部署,则还可以通过红宝石capistrano-db-tasks gem完成此操作。

很显然,知道如何通过基本的mysqldump命令来完成工作绝对是一件很棒的事,但是从我个人的角度来看,一旦学会了这一点,使用gem的工作流程就会变得更好。有了gem,您就可以为所有环境快速推送和提取数据,下面列出了更多其他优点。默认情况下,我将其添加到每个Rails应用程序中,因为我不断将产品数据下拉到本地。

优势

  • 不必通过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,认为如果您想了解更多有关使用该宝石的信息,可能会有所帮助。