mysql - 如何将数据从生产数据库迁移到开发数据库 (Rails 4)?

标签 mysql ruby-on-rails rake rails-activerecord rails-migrations

我知道这听起来有点倒退!我一直在研究基于云的案例管理应用程序,并且一直在研究支持票务功能。我们有我们的开发数据库 (MySQL),它与我们的生产数据库(这是一个非常大的应用程序)具有所有相同的数据。开发基本上是一个“沙盒”环境,因此开发数据库与生产数据库完全相同。今天早上,我在本地开发服务器上遇到了一个问题:

Migrations are pending; run 'bin/rake db:migrate RAILS_ENV=development' to resolve this issue.

好吧,这样做了,尽管它没有任何意义。它出错了,因为它试图创建已经存在的表(我已经运行了我的迁移,这些功能在一天前完成了!一切都很好)。

在我的开发服务器中收到此消息之前,我唯一做的就是取消注释一个完全注释掉的文件,以尝试修复 TinyMCE(/config/tinymce.yml,文本编辑器)的问题,然后是重新启动我的 Rails 开发服务器。所有这些文件都是一堆默认值和插件。当我看到这个问题时,我首先将它们全部撤回。仍然是同样的错误。继续进行 rake db: 任务。

开始寻找答案..不断出错。犯了一个菜鸟错误,最终做了一个

rake db:migrate:reset 

我知道这会以处理数据库为代价重建模式。这失败了..但是我们确实在不止一个地方有数据库(因为它与生产相同。)另外,只是尝试将所有表恢复:

rake db:schema:load

....无论如何在其中一张 table 上失败了

ActiveRecord::StatementInvalid: Mysql2::Error: Specified key was too long; max key length is 767 bytes: CREATE UNIQUE INDEX `login` USING btree ON `users` (`login`, `intranet_id`)

..并且所有已成功创建的表都是空的(如预期的那样)。我绝不是数据库专家(我开发的时间不长)。我想知道,有没有办法将整个生产数据库复制到开发数据库中?表格、数据和所有内容。或者有什么其他的建议吗?真的迷失在这一点上。

最佳答案

您可以使用 mysql_dump .

如果您连接到数据库,一切都在那里 - 您只需转储整个数据库,然后再次转储到生产表中。

如您所见,您可以使用“>”从数据库中输出,也可以使用“<”导入。

关于mysql - 如何将数据从生产数据库迁移到开发数据库 (Rails 4)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24890519/

相关文章:

ruby-on-rails - 如何仅在 Rails 2 应用程序中访问请求 header ?

javascript - Rails/Ajax 将表单从创建更改为提交后更新

ruby-on-rails - 从一系列 Rake 任务中退出并继续下一个

php - 无法使用php连接到远程数据库

mysql - 将删除的记录添加到自增表中

mysql - 在 Mysql 中向日期添加天数

mysql - 无法从java云端点连接到google MySql云实例

ruby-on-rails - 为什么在生成模型时会创建时间戳

ruby-on-rails - 预置到现有的 rake 任务

android - 罗德 : Error! !!错误的 Android API 版本