我可以帮您将MySQL SQL文件生成一个Ruby on Rails数据库迁移文件吗?

3

我有一个sql脚本文件,导入后可以在MySQL数据库中创建一个表,并将其填充为2800个记录。这些都是比利时国家的所有邮政编码。

现在我想从中制作一个Ruby on Rails数据库迁移文件。有任何想法吗?

也许有一种方法?在数据库迁移文件中告诉它执行单独的sql脚本?

谢谢, 迈克尔

1个回答

11

如果您的config/database.yml文件是使用模式引用MySQL数据库,则执行以下操作:

rake db:schema:dump

这将创建一个与数据库无关的db / schema.rb文件。

将schema.rb复制到db / migrate / 001_original_schema.rb中:

class OriginalDatabaseMigration < ActiveRecord::Migration
  def self.up
    # schema.rb here
  end

  def self.down
    # drop all the tables
  end
end

嗨,谢谢!我刚试了一下,它确实生成了表的结构。是否还有一个命令可以包括表中记录的转储? - Michael Torfs
1
如果您需要添加记录以使数据库可用,则不要在迁移中执行此操作,因为迁移是用于数据库模式的。Rails现在有一个专门的位置用于初始数据。请使用db/seeds.rb。您可以将其转换/转储为固定装置(谷歌),然后使用Fixtures.load或YAML.load与相关的ActiveRecord模型一起创建条目,或者如果您将它们保存在文本文件中,只需在调用Postalnumber.create时进行迭代读取即可。您甚至可以使用open-uri从互联网获取数据并在seed.rb中使用它 :-) - duncan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接