【问题标题】:How to migrate Java EE application to rails如何将 Java EE 应用程序迁移到 Rails
【发布时间】:2012-12-31 10:33:30
【问题描述】:

我们正在将使用(JBoss AS、JDBC、Hibernate、MySQL)构建的 CRM 应用程序迁移到 Rails 3.2.x

我们希望保持数据库模式不变,这样我们在使用 Rails 迁移到新的 Web 架构时只需付出最少的努力。是否有任何工具可以帮助我生成模型/控制器并从数据库的角度处理迁移。

我们应该使用什么策略,以便在我们迁移到新的 Rails 应用程序之前,我们可以在生产中保持旧应用程序的正常运行。

【问题讨论】:

  • 您不会将应用程序从经过编译和高度优化的开发平台迁移到具有完全不同设计和语言的解释平台。 Java 至少是基于 C 的,而另一方面,Ruby 被设计为基于 C 的一切。祝你好运,从头开始完全重建整个应用程序。
  • 我总体上同意@Gimby。您唯一的选择是从头开始使用该应用程序,但是,您没有理由不能将其连接到您现有的数据库。谷歌“在现有数据库中使用 Rails”。有一百万个结果。
  • 我的意图是从头开始构建整个应用程序,并且只重用现有的数据库。不确定我是否还需要更改列名。抱歉,如果我对原始帖子不清楚。
  • 你为什么要这样做?听起来好像有人不喜欢 java...

标签: java mysql ruby-on-rails


【解决方案1】:

这是我的想法,以及我过去所做的事情:)

1 - 首先编写与现有数据库耦合的模型(我认为您正在使用带有 Rails 的 ActiveRecord,如果不是,您应该:D)

2 - 尽量使用 ActiveRecord 及其组件,避免使用纯 SQL,因为以后会造成混乱

3 - 涵盖良好的单元测试并确保您的模型与现有数据库和所有关系等一起工作。

4 - 然后移动到控制器和视图层

5 - 黄金法则,尽量保持 Rails 约定,因为 Rails 的美妙之处在于,如果你遵循 Rails 方式,一切都会“正常工作”

(由于您使用的是同一个数据库,因此您不会为数据迁移而烦恼)。

并且 +1 从 Java 迁移到 Ruby :)

【讨论】:

  • 我计划将 ActiveRecord 与 Rails 一起使用。现有的列名约定与人们在 Rails 中使用的一般情况不一致(例如,现有表名是 user 而不是 users,date 称为 cre_date 而不是 created_at)。我该如何处理?
  • 如何处理主键的自动增量。如果我复制原始数据库并进行更改,则可以保证这些 id 在复制的实例中也是唯一的。
  • 关于视图层的任何建议。如果我们打算在手机中公开应用程序的某些部分,我应该使用 erb 还是 HAML 或其他东西。
  • 嗨,您需要覆盖默认的 Activerecord 行为,例如使用 :set_table_name 表名等。最初我相信您应该编写自己的 auto_increment 方法并在模型中调用它 before_create 。对于视图层,我建议使用 'twitter bootstrap' 作为其针对移动设备的优化并使用 .erb (因为稍后您可以移至 .haml ,一次更改一个:))(jonathanhui.com/ruby-rails-3-model-working-legacy-database
  • 检查 slim 作为模板语言,但在移动设备上进行显示并不依赖于您的任何一个 HTML 预处理器。
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 2011-11-02
相关资源
最近更新 更多