0

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

4

1 回答 1

1

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

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

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

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

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

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

于 2012-06-06T19:51:12.240 回答