我在这里查看了其他几个问题,它们模糊地相似,但不完全是我正在寻找的.
我要做的是导入/“转换”一个* .sql文件,其中包含8个表,每个表包含大约24列.这个文件实际上是相当扁平的文件,看起来好像以前唯一有效的查询与表之间的shared:id相关联(因此,SELECT * FROM table1,table2 WHERE id =’1’会拉出所有结果,这是当时很好).
我已经四处寻找,但找不到一个聪明的方法来做到这一点,所以我现在请求Rails专业人员寻求帮助.
最佳答案 我假设您想要的基本上是将您的SQL文件转换为Rails数据库模式文件,而无需手动执行此操作.
一个快速的方法是手动执行SQL文件,可能是通过登录到您的数据库并以这种方式加载文件,或者执行类似于in this question的操作:
ActiveRecord::Base.connection.execute(IO.read("path/to/file"))
一旦将.sql文件中定义的模式实际加载到数据库中,您将需要按照in this question中概述的步骤操作:
首先运行rake db:schema:dump,它将根据数据库的当前状态生成db / schema.rb数据库文件.
从这里,您可以创建引用schema.rb文件的db / migrate / 001_original_schema.rb迁移,如下所示:
class OriginalDatabaseMigration < ActiveRecord::Migration
def self.up
# contents of schema.rb here
end
def self.down
# drop all the tables
end
end