【问题标题】:Is it better to transfer records between databases via mysql or rails?通过mysql或rails在数据库之间传输记录更好吗?
【发布时间】:2019-07-03 11:15:48
【问题描述】:

我们正在运行一个包含各种课程的生产服务器,并且正在创建一个访问受限的演示服务器。在我们的 CMS 中创建每节课大约需要一个小时,我正在尝试创建一种方法,通过单击按钮将在那里创建的课程转移到我们的其他环境中。我的最终目标是在两个数据库中都有具有相同主 ID 的记录

我的第一个问题是,通过 Ruby 而不是 SQL 来解决这个问题是正确的方法吗?我可以设置一个服务,使用正确的参数向演示服务器提交请求,但这会创建 ID 不匹配的新记录。我是否最好编写一个将对象属性作为参数的脚本,并直接通过 mysql 创建记录?如果是这样,最好的方法是什么?调用 rake 任务?

为开放式问题道歉,但我不确定我还能问什么,并且没有找到在 Rails 应用程序中的数据库之间复制记录的资源(只是在同一环境中复制对象)

【问题讨论】:

  • 转储数据库并在另一台服务器上恢复它不是一种选择吗?
  • 为什么不转储数据库并在演示环境中恢复?
  • @Eyeslandic:哈哈,伟大的思想都一样:)
  • 很抱歉,我应该提到 - 演示数据库将有单独的记录 - 我们正在跟踪那里的用户活动,不幸的是,不能仅仅核对整个事情
  • 然而,需要重复记录的表将只包含那些重复记录,因此 ID 冲突不会成为问题

标签: mysql ruby-on-rails


【解决方案1】:

如果演示服务器不是只读的 - 在一般情况下,您很容易面临您要注入的 id 已经被占用的情况。

至于流程本身 - 我会为课程(json 转储或任何其他)引入序列化格式,以便可以在单个事务中导入和导出它们。 然后您可以允许用户手动传输这些转储或添加一个 api 来执行此操作(在这种情况下,您将有关演示服务器的知识添加到生产服务器中,这在架构方面并不总是可取的)

【讨论】:

  • 感谢您花时间回答。我希望保持它严格基于 Rails,但看起来像在 json 中收集所有信息然后直接通过 SQL 导入是最好的方法。再次感谢!
猜你喜欢
  • 2020-08-09
  • 2014-03-18
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 2012-08-01
相关资源
最近更新 更多