我知道这听起来有点倒退!我一直在研究基于云的案例管理应用程序,并且一直在研究支持票务功能。我们有我们的开发数据库 (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 - 如何将数据从生产数据库迁移到开发数据库 (Rails 4)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24890519/