mysql2postgres 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc905b9634e92298f5b5d192b6f4388294f6153a777b551b408bc5e944247b3f
4
- data.tar.gz: 108d90760f0600e55f117df749147f8137d3044a7724dd901f76869db7b45caf
3
+ metadata.gz: 1108264fc3155986e78c07a12abd11c6ef39a1fb671a252e6921bf4bbf7f3a4b
4
+ data.tar.gz: 19837bf3a64bf6a204c9325b1271566e982467f7a3e9a53f966681c8a680e1ad
5
5
  SHA512:
6
- metadata.gz: 6b08edc13623c942b61d03cecce1f577eca9fce3906e3c06ef17c848396dfebadb39017cb7ae7aecb5193e91cffc85d2a4cea2e49054f0e7dd3dffc8f53012eb
7
- data.tar.gz: 5ef72f3a6ac5961102d282b38cf2eb5bc62d301f5e84b590dc4e9dd7d057fa51c43f5272b112478ab6b6d3513fc3ac67e8a24bae0d9f23d3f162c0ddd8f591e0
6
+ metadata.gz: e5c54b071adaa63e1bfa5819fcadc7520f1063a4a0d2218adb5337361df259ddf574ab37bec2bc7f7683a0c4024679fd87c6d6715fe692a56768365cb5021a71
7
+ data.tar.gz: 992c22cdfa9e8ebea90fdecb10f95a00367b3ba9cd744c6cb0d954a0a2be81138376319a7f657337e8a50b83cd4969e577e7b6de480369e34edd1b9dcc8697e6
@@ -27,7 +27,7 @@ class Mysql2postgres
27
27
 
28
28
  def convert
29
29
  tables = reader.tables
30
- tables.reject! { |table| exclude_tables.include?(table.name) }
30
+ tables.reject! { |table| exclude_tables.include? table.name }
31
31
  tables.select! { |table| only_tables ? only_tables.include?(table.name) : true }
32
32
 
33
33
  # preserve order only works, if only_tables are specified
@@ -125,7 +125,7 @@ class Mysql2postgres
125
125
  @indexes << index
126
126
  elsif (match_data = /PRIMARY KEY .*\((.*)\)/.match(line))
127
127
  index[:primary] = true
128
- index[:columns] = match_data[1].split(',').map { |col| col.strip.delete('`') }
128
+ index[:columns] = match_data[1].split(',').map { |col| col.strip.delete '`' }
129
129
  @indexes << index
130
130
  end
131
131
  end
@@ -216,7 +216,7 @@ class Mysql2postgres
216
216
  end
217
217
 
218
218
  def tables
219
- @tables ||= @mysql.query('SHOW TABLES').map { |row| Table.new(self, row.first) }
219
+ @tables ||= @mysql.query('SHOW TABLES').map { |row| Table.new self, row.first }
220
220
  end
221
221
 
222
222
  def paginated_read(table, page_size)
@@ -151,7 +151,7 @@ class Mysql2postgres
151
151
  private
152
152
 
153
153
  def quoted_list(list)
154
- list.map { |c| PG::Connection.quote_ident(c) }.join(', ')
154
+ list.map { |c| PG::Connection.quote_ident c }.join(', ')
155
155
  end
156
156
  end
157
157
  end
@@ -51,7 +51,7 @@ class Mysql2postgres
51
51
  when 'double precision'
52
52
  default = " DEFAULT #{column[:default].nil? ? 'NULL' : column[:default]}" if default
53
53
  'double precision'
54
- when 'datetime'
54
+ when 'datetime', 'datetime(6)'
55
55
  default = nil
56
56
  'timestamp without time zone'
57
57
  when 'date'
@@ -102,14 +102,14 @@ class Mysql2postgres
102
102
  if column_type(column) == 'boolean'
103
103
  row[index] = if row[index] == 1
104
104
  't'
105
- elsif row[index].zero?
105
+ elsif row[index]&.zero?
106
106
  'f'
107
107
  else
108
108
  row[index]
109
109
  end
110
110
  end
111
111
 
112
- row[index] = string_data row, index, column if row[index].is_a? String
112
+ row[index] = string_data table, row, index, column if row[index].is_a? String
113
113
 
114
114
  row[index] = '\N' unless row[index]
115
115
  end
@@ -137,7 +137,7 @@ class Mysql2postgres
137
137
  value.join ':'
138
138
  end
139
139
 
140
- def string_data(row, index, column)
140
+ def string_data(table, row, index, column)
141
141
  if column_type(column) == 'bytea'
142
142
  if column[:name] == 'data'
143
143
  with_gzip = false
@@ -153,16 +153,16 @@ class Mysql2postgres
153
153
  escape_bytea row[index]
154
154
  end
155
155
  else
156
- escape_data(row[index]).gsub(/\n/, '\n').gsub(/\t/, '\t').gsub(/\r/, '\r').gsub(/\0/, '')
156
+ escape_data(row[index]).gsub("\n", '\n').gsub("\t", '\t').gsub("\r", '\r').gsub(/\0/, '')
157
157
  end
158
158
  end
159
159
 
160
160
  def escape_bytea(data)
161
- escape_data(PG::Connection.escape_bytea(data)).gsub(/''/, "'")
161
+ escape_data(PG::Connection.escape_bytea(data)).gsub("''", "'")
162
162
  end
163
163
 
164
164
  def escape_data(value)
165
- value.gsub(/\\/, '\\\\\\')
165
+ value.gsub '\\', '\\\\\\'
166
166
  end
167
167
  end
168
168
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Mysql2postgres
4
- VERSION = '0.4.0'
4
+ VERSION = '0.4.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql2postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Lapshin <max@maxidoors.ru>
@@ -24,7 +24,7 @@ authors:
24
24
  autorequire:
25
25
  bindir: bin
26
26
  cert_chain: []
27
- date: 2022-07-31 00:00:00.000000000 Z
27
+ date: 2023-10-14 00:00:00.000000000 Z
28
28
  dependencies:
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: pg
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  requirements: []
127
- rubygems_version: 3.3.7
127
+ rubygems_version: 3.3.26
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: MySQL to PostgreSQL Data Translation