db-sync-tool-kmi 2.11.6__py3-none-any.whl → 2.11.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of db-sync-tool-kmi might be problematic. Click here for more details.

@@ -51,9 +51,9 @@ def create_origin_database_dump():
51
51
  _mysqldump_options = _mysqldump_options + f'{_additional} '
52
52
 
53
53
  # Run mysql dump command, e.g.
54
- # MYSQL_PWD="db" mysqldump --no-tablespaces -u'db' -p'db' -h'db1' -P'3306' 'db' > /tmp/_db_08-10-2021_07-00.sql
54
+ # mysqldump --no-tablespaces -u'db' -p'db' -h'db1' -P'3306' 'db' > /tmp/_db_08-10-2021_07-00.sql
55
55
  mode.run_command(
56
- 'MYSQL_PWD="' + system.config[mode.Client.ORIGIN]['db']['password'] + '" ' + helper.get_command(mode.Client.ORIGIN, 'mysqldump') + ' ' + _mysqldump_options +
56
+ helper.get_command(mode.Client.ORIGIN, 'mysqldump') + ' ' + _mysqldump_options +
57
57
  database_utility.generate_mysql_credentials(mode.Client.ORIGIN) + ' \'' +
58
58
  system.config[mode.Client.ORIGIN]['db']['name'] + '\' ' +
59
59
  database_utility.generate_ignore_database_tables() +
@@ -149,7 +149,6 @@ def import_database_dump_file(client, filepath):
149
149
  """
150
150
  if helper.check_file_exists(client, filepath):
151
151
  mode.run_command(
152
- 'MYSQL_PWD="' + system.config[client]['db']['password'] + '" ' +
153
152
  helper.get_command(client, 'mysql') + ' ' +
154
153
  database_utility.generate_mysql_credentials(client) + ' \'' +
155
154
  system.config[client]['db']['name'] + '\' < ' + filepath,
@@ -208,13 +207,13 @@ def clear_database(client):
208
207
  :return:
209
208
  """
210
209
  mode.run_command(
211
- '{ MYSQL_PWD="' + system.config[client]['db']['password'] + '" ' + helper.get_command(client, 'mysql') + ' ' +
210
+ '{ ' + helper.get_command(client, 'mysql') + ' ' +
212
211
  database_utility.generate_mysql_credentials(client) +
213
212
  ' -Nse \'show tables\' \'' +
214
213
  system.config[client]['db']['name'] + '\'; }' +
215
214
  ' | ( while read table; do if [ -z ${i+x} ]; then echo \'SET FOREIGN_KEY_CHECKS = 0;\'; fi; i=1; ' +
216
215
  'echo "drop table \\`$table\\`;"; done; echo \'SET FOREIGN_KEY_CHECKS = 1;\' ) | awk \'{print}\' ORS=' ' | ' +
217
- 'MYSQL_PWD="' + system.config[client]['db']['password'] + '" ' +
216
+ ' ' +
218
217
  helper.get_command(client, 'mysql') + ' ' +
219
218
  database_utility.generate_mysql_credentials(client) + ' ' +
220
219
  system.config[client]['db']['name'],
@@ -29,7 +29,7 @@ def run_database_command(client, command, force_database_name=False):
29
29
  _database_name = ' ' + system.config[client]['db']['name'] if force_database_name else ''
30
30
 
31
31
  return mode.run_command(
32
- 'MYSQL_PWD="' + system.config[client]['db']['password'] + '" ' + helper.get_command(client, 'mysql') + ' ' + generate_mysql_credentials(
32
+ helper.get_command(client, 'mysql') + ' ' + generate_mysql_credentials(
33
33
  client) + _database_name + ' -e "' + command + '"',
34
34
  client, True)
35
35
 
@@ -144,7 +144,7 @@ def get_database_tables():
144
144
  return _result
145
145
 
146
146
 
147
- def generate_mysql_credentials(client, force_password=False):
147
+ def generate_mysql_credentials(client, force_password=True):
148
148
  """
149
149
  Generate the needed database credential information for the mysql command
150
150
  :param client: String
db_sync_tool/info.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """
2
2
  Info script
3
3
  """
4
- __version__ = "2.11.6"
4
+ __version__ = "2.11.8"
5
5
  __pypi_package_url__ = "https://pypi.org/pypi/db-sync-tool-kmi"
6
6
  __homepage__ = "https://github.com/jackd248/db-sync-tool"
@@ -41,7 +41,7 @@ def check_configuration(client):
41
41
 
42
42
  _db_config = parse_database_credentials(json.loads(stdout))
43
43
 
44
- system.config[client]['db'] = _db_config
44
+ system.config[client]['db'] = helper.clean_db_config(_db_config)
45
45
 
46
46
 
47
47
  def parse_database_credentials(db_credentials):
@@ -15,13 +15,13 @@ def check_configuration(client):
15
15
  """
16
16
  _path = system.config[client]['path']
17
17
 
18
- system.config[client]['db'] = {
18
+ system.config[client]['db'] = helper.clean_db_config({
19
19
  'name': get_database_parameter(client, 'DB_DATABASE', _path),
20
20
  'host': get_database_parameter(client, 'DB_HOST', _path),
21
21
  'password': get_database_parameter(client, 'DB_PASSWORD', _path),
22
22
  'port': get_database_parameter(client, 'DB_PORT', _path),
23
23
  'user': get_database_parameter(client, 'DB_USERNAME', _path),
24
- }
24
+ })
25
25
 
26
26
 
27
27
  def get_database_parameter(client, name, file):
@@ -38,7 +38,7 @@ def check_configuration(client):
38
38
  )
39
39
  _db_config = parse_database_credentials(stdout)
40
40
 
41
- system.config[client]['db'] = _db_config
41
+ system.config[client]['db'] = helper.clean_db_config(_db_config)
42
42
 
43
43
 
44
44
  def parse_database_credentials(db_credentials):
@@ -59,7 +59,7 @@ def check_configuration(client):
59
59
  )
60
60
  )
61
61
 
62
- system.config[client]['db'] = _db_config
62
+ system.config[client]['db'] = helper.clean_db_config(_db_config)
63
63
 
64
64
 
65
65
  def parse_database_credentials(db_credentials):
@@ -25,7 +25,7 @@ def check_configuration(client):
25
25
  'user': get_database_setting(client, 'DB_USER', system.config[client]['path']),
26
26
  }
27
27
 
28
- system.config[client]['db'] = _db_config
28
+ system.config[client]['db'] = helper.clean_db_config(_db_config)
29
29
 
30
30
 
31
31
  def get_database_setting(client, name, file):
@@ -323,3 +323,31 @@ def confirm(prompt=None, resp=False):
323
323
  return True
324
324
  if ans == 'n' or ans == 'N':
325
325
  return False
326
+
327
+
328
+ def clean_db_config(config):
329
+ """
330
+ Iterates over all entries of a dictionary and removes enclosing inverted commas
331
+ from the values, if present.
332
+
333
+ :param config: The dictionary to be edited
334
+ :return: A new dictionary with adjusted values
335
+ """
336
+ # Iterate over all entries in the dictionary and use the inverted comma function
337
+ return {key: remove_surrounding_quotes(value) for key, value in config.items()}
338
+
339
+
340
+ def remove_surrounding_quotes(s):
341
+ """
342
+ Removes the enclosing inverted commas (single or double),
343
+ if there are quotes at both the beginning and the end of the string.
344
+
345
+ :param s: The string to be checked
346
+ :return: The string without enclosing quotes, if available
347
+ """
348
+ if isinstance(s, str):
349
+ if s.startswith('"') and s.endswith('"'):
350
+ return s[1:-1]
351
+ elif s.startswith("'") and s.endswith("'"):
352
+ return s[1:-1]
353
+ return s
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: db-sync-tool-kmi
3
- Version: 2.11.6
3
+ Version: 2.11.8
4
4
  Summary: Synchronize a database from and to host systems.
5
5
  Home-page: https://github.com/jackd248/db-sync-tool
6
6
  Author: Konrad Michalik
@@ -1,16 +1,16 @@
1
1
  db_sync_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  db_sync_tool/__main__.py,sha256=-pD13j2oYcKLhPprLy-LQeDCapj-FKrV3CDFHuYJu3g,11541
3
- db_sync_tool/info.py,sha256=Dp0DluuDEA_8H2BV2Iq4vzULDRDfH_phTf_FU9DoNkc,165
3
+ db_sync_tool/info.py,sha256=oltTVrkzR98MZMAvIQoE1Y5IIg-VIr2BIY0E1LyPANc,165
4
4
  db_sync_tool/sync.py,sha256=WMfMts0M8z3oecI-HL07xG9ktbba8D8h7_U-8tBwizY,2087
5
5
  db_sync_tool/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- db_sync_tool/database/process.py,sha256=zmaKkxMVLYG3kr7S9rUUuxE1fgsdKasRNOhxZgSfzvg,8357
7
- db_sync_tool/database/utility.py,sha256=EfxWwHUsS6hVIMD4Jrz3n2_HQNBn3pB2GWo6OpWph4k,7783
6
+ db_sync_tool/database/process.py,sha256=djOnNnwEswkmPbnJVsI3SvPSwzcZgAapighh3Ew5heE,8069
7
+ db_sync_tool/database/utility.py,sha256=MRvTfF0ZCdcDW1EfIwIJR4ZtemxTBasOf45q5hor6vs,7717
8
8
  db_sync_tool/recipes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- db_sync_tool/recipes/drupal.py,sha256=jlWuSQQeoLkVBq6nqka853QnEyy2ZO_08o5mfkv0jDo,1481
10
- db_sync_tool/recipes/laravel.py,sha256=-iF-2SHh5tOKuOC4C2qQMdz_sn9gm0-TBN9XpiYEuC4,1151
11
- db_sync_tool/recipes/symfony.py,sha256=rk2epXLEBLfsNTiV5G43JUnJtjn5-JTtnhQFi-tgmJQ,2493
12
- db_sync_tool/recipes/typo3.py,sha256=7ThFTkqN086FcpYv_aUhxMTEKh2JQl6BB5VrFzNrEWA,4737
13
- db_sync_tool/recipes/wordpress.py,sha256=Cdjc10c30shHAG8WpQeFvhl8fojHeCto3UInRLb9FFU,1444
9
+ db_sync_tool/recipes/drupal.py,sha256=jAo1d3vxZ4UZ4Vzk308Dsmn1--ORmVO2g87l8OpQoPw,1505
10
+ db_sync_tool/recipes/laravel.py,sha256=kp_gnKG0iyX_rzM0GW7Ca9ZPV3oGfEgGsLvJR_0pVDo,1175
11
+ db_sync_tool/recipes/symfony.py,sha256=8ObIRXdoBG1MbWD7pd1TxUQboz5LUWbfzz3TX6F9G5w,2517
12
+ db_sync_tool/recipes/typo3.py,sha256=7IejOtxASfskymG5jBFKmEzjl2sON3miKo_78Oqvi2g,4761
13
+ db_sync_tool/recipes/wordpress.py,sha256=KN3HTzDbs5p2GD7vvTEhBl7xNOiy2YHrXhVLmiF_y_A,1468
14
14
  db_sync_tool/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  db_sync_tool/remote/client.py,sha256=wjcoQ1jp9i8PMO_6XX2XMXZCoLXy-ySA38seZtY-Sns,6553
16
16
  db_sync_tool/remote/rsync.py,sha256=VsLbCCgZRSXjmYz5o7B_OpKPna0X1WFqlr-irLN83EY,4252
@@ -18,7 +18,7 @@ db_sync_tool/remote/system.py,sha256=A9OIaypETMYx7frTKpXBgja-kXj7vSD6gJs8pUNpL_I
18
18
  db_sync_tool/remote/transfer.py,sha256=pYVsad4SKkJ0TgZHcyLc17Z9xK6exdyO7R8TBe4qQcQ,5872
19
19
  db_sync_tool/remote/utility.py,sha256=knTfzFKLdw2QsirvTfTz76XmckagKURKVBhjyREsQIo,3580
20
20
  db_sync_tool/utility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- db_sync_tool/utility/helper.py,sha256=KSnps4JQHc-wUmi8HNqI1d836R4ZUiQJo94t1gYNFuo,7987
21
+ db_sync_tool/utility/helper.py,sha256=zf1dPKgb5loLcOUtinjHdY9D_E6Gp5kLjbS8R-bRrxw,8905
22
22
  db_sync_tool/utility/info.py,sha256=8VdUMi3fsyykfMKKrmgUVoW9WEHPXbzPkVNHOIsNAMo,2976
23
23
  db_sync_tool/utility/log.py,sha256=OdJsVKyvJqQYl5NUzb5bIg1uhUJ9kj7c7kT9oKbGvo8,869
24
24
  db_sync_tool/utility/mode.py,sha256=DAkt-N5sYr6r2iTL_1sWu7_WHq04DNO4YjvBLkU3LeA,8588
@@ -26,9 +26,9 @@ db_sync_tool/utility/output.py,sha256=uoiWE7Pm8qv1a3vrBupZHE545d1uZSQHiLAUgkHofL
26
26
  db_sync_tool/utility/parser.py,sha256=DIdWVGyiltyH8akoWyyXLvUmFPR-nvBrnzDctPJzgKw,6624
27
27
  db_sync_tool/utility/system.py,sha256=G74lWGFcJNmLr0l6-GkZWmkk7q3icv4MccuHFKP_Vsw,18539
28
28
  db_sync_tool/utility/validation.py,sha256=qZNPgkTwV_kJTNtFh0OXb2FHrsWPnDA2W_fftWs5hZc,3530
29
- db_sync_tool_kmi-2.11.6.dist-info/LICENSE,sha256=o_R9gPKBRl4PQVcGCrWuTYsJQJ7uuQDcDaq-wapBUaw,1082
30
- db_sync_tool_kmi-2.11.6.dist-info/METADATA,sha256=x_N_6SPFgsNz7wlvuDziLpUbgkz9LkHrwCk3E3dQbH8,12505
31
- db_sync_tool_kmi-2.11.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
32
- db_sync_tool_kmi-2.11.6.dist-info/entry_points.txt,sha256=bVk6UR_ejpfY2oSCoOii7uKQivwV9MtA6Tdqpjg4Yvo,60
33
- db_sync_tool_kmi-2.11.6.dist-info/top_level.txt,sha256=Uj5hJLhmdynFrBE0VnX0PfgIBC8_n7h2vgldqUQ-xfw,13
34
- db_sync_tool_kmi-2.11.6.dist-info/RECORD,,
29
+ db_sync_tool_kmi-2.11.8.dist-info/LICENSE,sha256=o_R9gPKBRl4PQVcGCrWuTYsJQJ7uuQDcDaq-wapBUaw,1082
30
+ db_sync_tool_kmi-2.11.8.dist-info/METADATA,sha256=EGxuPJ7XlzkctysvkkSIu8oqC7Wt1KvcHzx_ljWaiBE,12505
31
+ db_sync_tool_kmi-2.11.8.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
32
+ db_sync_tool_kmi-2.11.8.dist-info/entry_points.txt,sha256=bVk6UR_ejpfY2oSCoOii7uKQivwV9MtA6Tdqpjg4Yvo,60
33
+ db_sync_tool_kmi-2.11.8.dist-info/top_level.txt,sha256=Uj5hJLhmdynFrBE0VnX0PfgIBC8_n7h2vgldqUQ-xfw,13
34
+ db_sync_tool_kmi-2.11.8.dist-info/RECORD,,