[英]Ruby on Rails SQLite3::NotADatabaseException (file is encrypted or is not a database)
[英]How do you add sqlite3 file to a ruby on rails populated database?
我有一个Ruby on Rails应用程序,其数据库中装有程序。 我还拥有一个sqlite3数据库,该数据库几乎与RoR应用程序中的数据库完全一样(未创建,未更新)。 我想将sqlite3数据库导入Rails应用程序(而不是与database.yml文件结合在一起,将两个数据库结合在一起),经过大量的google搜索,我不知道该在哪里进行该操作。 我将在哪个文件中执行此操作,什么是最佳方式?
技术含量较低的方法是将SQLite数据库转储到可以导入其他数据库的内容中。 MySQL的LOAD DATA INFILE
非常灵活,如果配置正确,甚至可以读取CSV文件,因此这可能是一种简单的方法。
通常,我发现最好按原样导入您的外部表,但要转换名称,以便可以将它们标识为非本地表。 例如,使用_import
为所有前缀加上_import
,以明确表示它们不属于常规架构。 然后,您可以使用一系列执行重新映射的语句从这些表迁移到本机表:
INSERT INTO foo (x,y) SELECT (x,y) FROM _import_foo
这样可以轻松解决缺少列或名称略有差异的问题。 如果需要,您还可以对特定的列执行转换。
与往常一样,在开始此操作之前,请确保已拥有数据库的快照,因为通常很难进行合并。
另一种方法是同时创建两个数据库连接,并使用一侧的SELECT
和另一侧的INSERT INTO
在两个数据库之间穿梭数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.