簡體   English   中英

如何將SQL文件導入Rails數據庫?

[英]How can I import a SQL file into a Rails database?

我有一個.sql文件,我想使用Rake任務加載到我的Rails數據庫中。 我怎樣才能做到這一點?

最簡單的方法:

bundle exec rails db < $SQL_FILE

例:

bundle exec rails db < my_db.sql

簡單的方法

這適用於簡單的情況。

ActiveRecord::Base.connection.execute(IO.read("path/to/file"))

從2006 起在Ruby On Rails郵件列表中找到了解決方案(但在Rails 3.1上仍可在2011年使用)。

腳注

  • 這個相關的問題暗示了這種解決方案,但拒絕了大宗進口。 我想明確顯示它,因為它適用於較小的對象。
  • 我嘗試導入的文件包含一個LOCK TABLES然后插入。 數據用於MySQL數據庫。 Mysql2說它有一個無效的SQL語法錯誤,直到我刪除了lock和unlock語句。

在MySQL上,這給了我一個語法錯誤。 將sql拆分為語句即可工作。

sql = File.read(sql_file)
statements = sql.split(/;$/)
statements.pop # remove empty line
ActiveRecord::Base.transaction do
  statements.each do |statement|
    connection.execute(statement)
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM