2

我有一个包含大量数据和表的 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
4

3 回答 3

1

如果您需要将当前数据库中的数据导入应用程序的数据库中,我建议您使用Sequel Pro。这是一个很棒的 MySQL 图形用户界面。您可以使用它来导出所需的数据库,例如 .csv 文件,然后将其导入新数据库。

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

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

于 2013-02-04T06:19:36.400 回答
0

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

您可以检查此 gem以查看它是否对您的情况有所帮助,因为它取决于您的实际架构。

或者您可以按照这个想法,从旧数据库中加载数据库模式和数据。如果您不遵循 Rails 约定,它将失败。

于 2013-06-05T21:29:21.640 回答
0

我在过去的项目中已经这样做了,而且使用 Rails 绝对可以。

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

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

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

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

于 2013-06-06T01:37:12.377 回答