2

由于 Heroku 现在支持 ruby​​ 1.9.3 但不支持 sqlite3,所以我终于开始探索 Heroku 使用 PostgreSQL 的方式。花了一点时间来理解和配置,但我在周末开车并获得了一些扎实的知识。然而,引起我注意的一件事是 .dat 文件的创建。使用

    heroku db:push 

显然将数据库推送到 Heroku - 点击 gem 安装 - 但也创建 .dat 文件。有人知道这个文件是什么吗?它只是一个会话收据吗?

4

1 回答 1

1

当这些文件开始在 git 中显示为未跟踪的文件时,我想知道这一点。看起来它确实只是一个会话收据。我最初认为这些文件可以让您以某种方式恢复中断的数据库迁移,但快速浏览 taps 源代码后发现它只是一张收据(生成的 .dat 文件永远不会在任何地方加载)。

以下是来自 taps 的github repo的相关代码:

def store_session
  file = "#{file_prefix}_#{Time.now.strftime("%Y%m%d%H%M")}.dat"
  puts "\nSaving session to #{file}.."
  File.open(file, 'w') do |f|
    f.write(OkJson.encode(to_hash))
  end
end

def to_hash
  {
    :klass => self.class.to_s,
    :database_url => database_url,
    :remote_url => remote_url,
    :session_uri => session_uri,
    :stream_state => stream_state,
    :completed_tables => completed_tables,
    :table_filter => table_filter,
  }
end
于 2012-10-03T15:17:47.610 回答