如何在rails填充的数据库上添加sqlite3文件到ruby?

时间:2012-06-06 19:45:49

标签: ruby-on-rails ruby sqlite

我有一个Ruby on Rails应用程序,其中包含一个填充了程序的数据库。我还有一个sqlite3数据库,几乎与RoR应用程序中的数据库完全一样(没有创建,更新)。我想将sqlite3数据库导入Rails应用程序(不是使用database.yml文件,结合两个数据库),经过大量谷歌搜索后,我无法弄清楚如何以及在何处执行此操作。我在哪个文件中执行此操作以及最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

低技术方法是将您的SQLite数据库转储到可以导入其他数据库的内容中。 MySQL LOAD DATA INFILE非常灵活,如果配置正确,甚至可以读取CSV文件,因此这可能是一种简单的方法。

通常我发现最好按原样导入外部表,但转换名称以便可以将它们标识为非本机。例如,在前面添加_import前缀,以明确它们不是常规架构的一部分。然后,您可以使用执行重新映射的一系列语句从这些表迁移到本地表:

INSERT INTO foo (x,y) SELECT (x,y) FROM _import_foo

这样可以轻松解释缺少的列或名称的细微差别。如果需要,您还可以对特定列执行转换。

与往常一样,在开始此操作之前,请确保您拥有数据库的快照,因为取消合并通常很棘手。

另一种方法是同时创建两个数据库连接,并在两者之间使用SELECT并在另一侧使用INSERT INTO来传输数据。