Module: FreedomPatches::SchemaMigrationDetails

Defined in:
lib/freedom_patches/schema_migration_details.rb

Instance Method Summary collapse

Instance Method Details

#exec_migration(conn, direction) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/freedom_patches/schema_migration_details.rb', line 5

def exec_migration(conn, direction)
  rval = nil

  time = Benchmark.measure { rval = super }

  sql = <<SQL
  INSERT INTO schema_migration_details(
    version,
    hostname,
    name,
    git_version,
    duration,
    direction,
    rails_version,
    created_at
  ) values (
    :version,
    :hostname,
    :name,
    :git_version,
    :duration,
    :direction,
    :rails_version,
    :created_at
  )
SQL

  hostname = Discourse.os_hostname
  sql =
    ActiveRecord::Base.public_send(
      :sanitize_sql_array,
      [
        sql,
        {
          version: version || "",
          duration: (time.real * 1000).to_i,
          hostname: hostname,
          name: name,
          git_version: Discourse.git_version,
          created_at: Time.zone.now,
          direction: direction.to_s,
          rails_version: Rails.version,
        },
      ],
    )

  conn.execute(sql)

  rval
end