使用现有的Mysql数据库构建Ruby on Rails应用程序

时间:2013-02-04 05:28:17

标签: mysql ruby-on-rails ruby ruby-on-rails-3

我有一个包含大量数据和表的Mysql数据库。但我需要知道如何在我的新rails应用程序中使用这个Mysql数据。我一段时间以来一直在学习Rails。我知道创建脚手架的基础知识,而脚手架又创建模型和控制器,但我不清楚如何导入数据库并使用它。 任何人都可以解释或提供有关如何克服这一点的链接。

这是我在运行一个简单的脚手架后的迁移,我在那里添加了一个电子邮件字符串后运行rake db:migrate但没有发生任何事情..:

class CreateProducts < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.string :title
      t.text :description
      t.string :image_url
      t.decimal :price, :precision => 8, :scale => 2
>>    t.string :email
      t.timestamps
    end
  end
end

3 个答案:

答案 0 :(得分:1)

如果您需要将当前数据库中的数据导入到应用中的数据,我建议您使用Sequel Pro。它是MySQL的一个很棒的GUI。您可以使用它来导出所需的数据库,例如.csv文件,并将其导入新数据库。

关于迁移,运行脚手架并运行rake db:migrate只会设置数据库;它不会添加任何数据。所以在这里,您已将其设置为创建products表,并为其属性指定数据类型。

但是为了获取数据,您只能通过应用程序的表单或导入数据来实现。

答案 1 :(得分:0)

在此之前,尝试了解有关rails及其约定的更多信息。可能你需要调整你的数据库方案。 或者您可以启动应用程序,然后导入数据,甚至是SQL或CSV。 迁移数据可能是一项繁琐的工作,但却是必要的工作。

您可以查看this gem以查看它是否对您的案例有所帮助,因为它取决于您的实际架构。

或者您可以按照此idea并从旧数据库加载数据库架构和数据。如果您不遵守rails约定,它将失败。

答案 2 :(得分:0)

我在过去的项目中已经完成了这一点,并且Rails肯定是可能的。

您可以在Ruby on Rails中使用旧数据库,也可以在同一个Rails项目中使用多个数据库。

有一本书详细介绍了如何将Rails与遗留MySQL数据库一起使用,以及如何调整模型以便与旧表一起使用: http://www.amazon.com/Pro-Active-Record-Databases-Experts/dp/1590598474

使用旧版表格的脚手架可能不会让你走得太远,因为你需要更改很多生成的代码来修复命名等。

如果你的Rails应用程序也有新的表/模型,我建议你在Rails项目中使用两个数据库:一个用于遗留数据,一个用于新模型。