pum 1.1.12__tar.gz → 1.1.14__tar.gz

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.
Files changed (156) hide show
  1. {pum-1.1.12 → pum-1.1.14}/.github/workflows/deploy-to-pypi.yml +1 -1
  2. {pum-1.1.12 → pum-1.1.14}/.github/workflows/docs.yml +3 -3
  3. {pum-1.1.12 → pum-1.1.14}/.github/workflows/tests.yml +2 -2
  4. {pum-1.1.12 → pum-1.1.14}/.github/workflows/wheel.yml +3 -3
  5. {pum-1.1.12 → pum-1.1.14}/.github/workflows/windows-tests.yml +2 -2
  6. {pum-1.1.12/pum.egg-info → pum-1.1.14}/PKG-INFO +1 -1
  7. {pum-1.1.12 → pum-1.1.14}/pum/config_model.py +3 -2
  8. {pum-1.1.12 → pum-1.1.14}/pum/pum_config.py +1 -1
  9. {pum-1.1.12 → pum-1.1.14}/pum/sql_content.py +4 -0
  10. {pum-1.1.12 → pum-1.1.14}/pum/upgrader.py +2 -0
  11. {pum-1.1.12 → pum-1.1.14/pum.egg-info}/PKG-INFO +1 -1
  12. {pum-1.1.12 → pum-1.1.14}/.ci/setup_db.sh +0 -0
  13. {pum-1.1.12 → pum-1.1.14}/.github/dependabot.yml +0 -0
  14. {pum-1.1.12 → pum-1.1.14}/.gitignore +0 -0
  15. {pum-1.1.12 → pum-1.1.14}/.pre-commit-config.yaml +0 -0
  16. {pum-1.1.12 → pum-1.1.14}/LICENSE +0 -0
  17. {pum-1.1.12 → pum-1.1.14}/README.md +0 -0
  18. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/changelog.md +0 -0
  19. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/dump_format.md +0 -0
  20. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/dumper.md +0 -0
  21. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/exceptions.md +0 -0
  22. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/hook_base.md +0 -0
  23. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/hook_handler.md +0 -0
  24. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/parameter_definition.md +0 -0
  25. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/parameter_type.md +0 -0
  26. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/permission.md +0 -0
  27. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/permission_type.md +0 -0
  28. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/pum_config.md +0 -0
  29. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/role.md +0 -0
  30. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/role_manager.md +0 -0
  31. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/schema_migrations.md +0 -0
  32. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/sql_content.md +0 -0
  33. {pum-1.1.12 → pum-1.1.14}/docs/docs/api/upgrader.md +0 -0
  34. {pum-1.1.12 → pum-1.1.14}/docs/docs/assets/images/favicon.ico +0 -0
  35. {pum-1.1.12 → pum-1.1.14}/docs/docs/assets/images/pum-darkmode.png +0 -0
  36. {pum-1.1.12 → pum-1.1.14}/docs/docs/assets/images/pum.png +0 -0
  37. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/baseline.md +0 -0
  38. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/check.md +0 -0
  39. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/dump.md +0 -0
  40. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/info.md +0 -0
  41. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/install.md +0 -0
  42. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/restore.md +0 -0
  43. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/role.md +0 -0
  44. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli/upgrade.md +0 -0
  45. {pum-1.1.12 → pum-1.1.14}/docs/docs/cli.md +0 -0
  46. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/config_model.md +0 -0
  47. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/configuration.md +0 -0
  48. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/demo_data_model.md +0 -0
  49. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/dependency_model.md +0 -0
  50. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/hook_model.md +0 -0
  51. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/migration_hooks_model.md +0 -0
  52. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/parameter_definition_model.md +0 -0
  53. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/permission_model.md +0 -0
  54. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/pum_model.md +0 -0
  55. {pum-1.1.12 → pum-1.1.14}/docs/docs/configuration/role_model.md +0 -0
  56. {pum-1.1.12 → pum-1.1.14}/docs/docs/getting_started.md +0 -0
  57. {pum-1.1.12 → pum-1.1.14}/docs/docs/hooks.md +0 -0
  58. {pum-1.1.12 → pum-1.1.14}/docs/docs/index.md +0 -0
  59. {pum-1.1.12 → pum-1.1.14}/docs/docs/roles.md +0 -0
  60. {pum-1.1.12 → pum-1.1.14}/docs/mkdocs.yml +0 -0
  61. {pum-1.1.12 → pum-1.1.14}/docs/requirements.txt +0 -0
  62. {pum-1.1.12 → pum-1.1.14}/docs/update_cli_docs.py +0 -0
  63. {pum-1.1.12 → pum-1.1.14}/pum/__init__.py +0 -0
  64. {pum-1.1.12 → pum-1.1.14}/pum/changelog.py +0 -0
  65. {pum-1.1.12 → pum-1.1.14}/pum/checker.py +0 -0
  66. {pum-1.1.12 → pum-1.1.14}/pum/cli.py +0 -0
  67. {pum-1.1.12 → pum-1.1.14}/pum/conf/pum_config_example.yaml +0 -0
  68. {pum-1.1.12 → pum-1.1.14}/pum/dependency_handler.py +0 -0
  69. {pum-1.1.12 → pum-1.1.14}/pum/dumper.py +0 -0
  70. {pum-1.1.12 → pum-1.1.14}/pum/exceptions.py +0 -0
  71. {pum-1.1.12 → pum-1.1.14}/pum/hook.py +0 -0
  72. {pum-1.1.12 → pum-1.1.14}/pum/info.py +0 -0
  73. {pum-1.1.12 → pum-1.1.14}/pum/parameter.py +0 -0
  74. {pum-1.1.12 → pum-1.1.14}/pum/role_manager.py +0 -0
  75. {pum-1.1.12 → pum-1.1.14}/pum/schema_migrations.py +0 -0
  76. {pum-1.1.12 → pum-1.1.14}/pum.egg-info/SOURCES.txt +0 -0
  77. {pum-1.1.12 → pum-1.1.14}/pum.egg-info/dependency_links.txt +0 -0
  78. {pum-1.1.12 → pum-1.1.14}/pum.egg-info/entry_points.txt +0 -0
  79. {pum-1.1.12 → pum-1.1.14}/pum.egg-info/requires.txt +0 -0
  80. {pum-1.1.12 → pum-1.1.14}/pum.egg-info/top_level.txt +0 -0
  81. {pum-1.1.12 → pum-1.1.14}/pyproject.toml +0 -0
  82. {pum-1.1.12 → pum-1.1.14}/requirements/base.txt +0 -0
  83. {pum-1.1.12 → pum-1.1.14}/requirements/development.txt +0 -0
  84. {pum-1.1.12 → pum-1.1.14}/scripts/run_postgis.sh +0 -0
  85. {pum-1.1.12 → pum-1.1.14}/setup.cfg +0 -0
  86. {pum-1.1.12 → pum-1.1.14}/test/__init__.py +0 -0
  87. {pum-1.1.12 → pum-1.1.14}/test/data/complex_files_content/changelogs/1.2.3/complex_files_content.sql +0 -0
  88. {pum-1.1.12 → pum-1.1.14}/test/data/custom_directory/.pum.yaml +0 -0
  89. {pum-1.1.12 → pum-1.1.14}/test/data/custom_directory/my_delta_directory/1.2.3/my_delta_directory.sql +0 -0
  90. {pum-1.1.12 → pum-1.1.14}/test/data/custom_migration_schema/.pum.yaml +0 -0
  91. {pum-1.1.12 → pum-1.1.14}/test/data/custom_migration_schema/changelogs/1.2.3/custom_migration_schema.sql +0 -0
  92. {pum-1.1.12 → pum-1.1.14}/test/data/demo_data/.pum.yaml +0 -0
  93. {pum-1.1.12 → pum-1.1.14}/test/data/demo_data/changelogs/1.2.3/single_changelog.sql +0 -0
  94. {pum-1.1.12 → pum-1.1.14}/test/data/demo_data/demo_data/demo_data.sql +0 -0
  95. {pum-1.1.12 → pum-1.1.14}/test/data/dependencies/.pum.yaml +0 -0
  96. {pum-1.1.12 → pum-1.1.14}/test/data/dependencies/changelogs/1.2.3/pre_post_python_parameters.sql +0 -0
  97. {pum-1.1.12 → pum-1.1.14}/test/data/dependencies/changelogs/1.2.4/rename_created_date.sql +0 -0
  98. {pum-1.1.12 → pum-1.1.14}/test/data/dependencies/post/create_schema.sql +0 -0
  99. {pum-1.1.12 → pum-1.1.14}/test/data/dependencies/post/create_view.py +0 -0
  100. {pum-1.1.12 → pum-1.1.14}/test/data/dependencies/pre/drop_view.sql +0 -0
  101. {pum-1.1.12 → pum-1.1.14}/test/data/invalid_changelog_commit/changelogs/1.2.3/invalid_changelog.sql +0 -0
  102. {pum-1.1.12 → pum-1.1.14}/test/data/invalid_changelog_search_path/changelogs/1.2.3/invalid_changelog.sql +0 -0
  103. {pum-1.1.12 → pum-1.1.14}/test/data/min_version/.pum.yaml +0 -0
  104. {pum-1.1.12 → pum-1.1.14}/test/data/min_version/changelogs/1.2.3/roles.sql +0 -0
  105. {pum-1.1.12 → pum-1.1.14}/test/data/multiple_changelogs/changelogs/1.2.3/multiple_changelogs.sql +0 -0
  106. {pum-1.1.12 → pum-1.1.14}/test/data/multiple_changelogs/changelogs/1.2.4/rename_created_date.sql +0 -0
  107. {pum-1.1.12 → pum-1.1.14}/test/data/multiple_changelogs/changelogs/1.3.0/add_created_by_column.sql +0 -0
  108. {pum-1.1.12 → pum-1.1.14}/test/data/multiple_changelogs/changelogs/2.0.0/create_second_table.sql +0 -0
  109. {pum-1.1.12 → pum-1.1.14}/test/data/multiple_changelogs/changelogs/2.0.0/create_third_table.sql +0 -0
  110. {pum-1.1.12 → pum-1.1.14}/test/data/parameters/.pum.yaml +0 -0
  111. {pum-1.1.12 → pum-1.1.14}/test/data/parameters/changelogs/1.2.3/parameters.sql +0 -0
  112. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python/.pum.yaml +0 -0
  113. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python/changelogs/1.2.3/pre_post_python.sql +0 -0
  114. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python/changelogs/1.2.4/rename_created_date.sql +0 -0
  115. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python/post/create_schema.sql +0 -0
  116. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python/post/create_view.py +0 -0
  117. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python/pre/drop_view.sql +0 -0
  118. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_local_import/.pum.yaml +0 -0
  119. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_local_import/changelogs/1.2.3/pre_post_python_local_import.sql +0 -0
  120. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_local_import/post/create_schema.sql +0 -0
  121. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_local_import/post/create_view.py +0 -0
  122. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_local_import/post/folder/my_module.py +0 -0
  123. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_local_import/pre/drop_view.sql +0 -0
  124. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters/.pum.yaml +0 -0
  125. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters/changelogs/1.2.3/pre_post_python_parameters.sql +0 -0
  126. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters/changelogs/1.2.4/rename_created_date.sql +0 -0
  127. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters/post/create_schema.sql +0 -0
  128. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters/post/create_view.py +0 -0
  129. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters/pre/drop_view.sql +0 -0
  130. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters_broken/.pum.yaml +0 -0
  131. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters_broken/changelogs/1.2.3/pre_post_python_parameters_broken.sql +0 -0
  132. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters_broken/changelogs/1.2.4/rename_created_date.sql +0 -0
  133. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters_broken/post/create_schema.sql +0 -0
  134. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters_broken/post/create_view.py +0 -0
  135. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_python_parameters_broken/pre/drop_view.sql +0 -0
  136. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_code/.pum.yaml +0 -0
  137. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_code/changelogs/1.2.3/pre_post_sql_code.sql +0 -0
  138. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_code/changelogs/1.2.4/rename_created_date.sql +0 -0
  139. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_code/post/create_view.sql +0 -0
  140. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_code/pre/drop_view.sql +0 -0
  141. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_files/.pum.yaml +0 -0
  142. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_files/changelogs/1.2.3/pre_post_sql_files.sql +0 -0
  143. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_files/changelogs/1.2.4/rename_created_date.sql +0 -0
  144. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_files/post/create_view.sql +0 -0
  145. {pum-1.1.12 → pum-1.1.14}/test/data/pre_post_sql_files/pre/drop_view.sql +0 -0
  146. {pum-1.1.12 → pum-1.1.14}/test/data/roles/.pum.yaml +0 -0
  147. {pum-1.1.12 → pum-1.1.14}/test/data/roles/changelogs/1.2.3/roles.sql +0 -0
  148. {pum-1.1.12 → pum-1.1.14}/test/data/single_changelog/changelogs/1.2.3/single_changelog.sql +0 -0
  149. {pum-1.1.12 → pum-1.1.14}/test/test_changelog.py +0 -0
  150. {pum-1.1.12 → pum-1.1.14}/test/test_checker.py.disabled +0 -0
  151. {pum-1.1.12 → pum-1.1.14}/test/test_config.py +0 -0
  152. {pum-1.1.12 → pum-1.1.14}/test/test_dumper.py +0 -0
  153. {pum-1.1.12 → pum-1.1.14}/test/test_pum.sh +0 -0
  154. {pum-1.1.12 → pum-1.1.14}/test/test_roles.py +0 -0
  155. {pum-1.1.12 → pum-1.1.14}/test/test_schema_migrations.py +0 -0
  156. {pum-1.1.12 → pum-1.1.14}/test/test_upgrader.py +0 -0
@@ -27,7 +27,7 @@ jobs:
27
27
 
28
28
  steps:
29
29
  - name: Retrieve artifact from Python build
30
- uses: actions/download-artifact@v4
30
+ uses: actions/download-artifact@v6
31
31
  with:
32
32
  name: python_wheel
33
33
  path: dist/
@@ -32,9 +32,9 @@ jobs:
32
32
 
33
33
  steps:
34
34
  - name: Get source code
35
- uses: actions/checkout@v4
35
+ uses: actions/checkout@v5
36
36
 
37
- - uses: actions/setup-python@v5
37
+ - uses: actions/setup-python@v6
38
38
  with:
39
39
  python-version: '3.12'
40
40
 
@@ -52,7 +52,7 @@ jobs:
52
52
  - name: Build documentation
53
53
  run: mkdocs build -f docs/mkdocs.yml
54
54
 
55
- - uses: actions/upload-artifact@v4
55
+ - uses: actions/upload-artifact@v5
56
56
  if: ${{ github.event_name == 'pull_request' }}
57
57
  with:
58
58
  name: docs
@@ -43,12 +43,12 @@ jobs:
43
43
  --health-retries 5
44
44
 
45
45
  steps:
46
- - uses: actions/checkout@v4
46
+ - uses: actions/checkout@v5
47
47
  with:
48
48
  fetch-tags: true
49
49
 
50
50
  - name: Set up Python
51
- uses: actions/setup-python@v5
51
+ uses: actions/setup-python@v6
52
52
  with:
53
53
  python-version: ${{ matrix.python }}
54
54
 
@@ -15,10 +15,10 @@ jobs:
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
17
  - name: Get source code
18
- uses: actions/checkout@v4
18
+ uses: actions/checkout@v5
19
19
 
20
20
  - name: Set up Python
21
- uses: actions/setup-python@v5
21
+ uses: actions/setup-python@v6
22
22
  with:
23
23
  python-version: "3.10"
24
24
  cache: "pip"
@@ -35,7 +35,7 @@ jobs:
35
35
  - name: Build a binary wheel and a source tarball
36
36
  run: python -m build .
37
37
 
38
- - uses: actions/upload-artifact@v4
38
+ - uses: actions/upload-artifact@v5
39
39
  with:
40
40
  name: python_wheel
41
41
  path: dist/*
@@ -18,10 +18,10 @@ jobs:
18
18
  PGSYSCONFDIR: .
19
19
 
20
20
  steps:
21
- - uses: actions/checkout@v4
21
+ - uses: actions/checkout@v5
22
22
 
23
23
  - name: Set up Python
24
- uses: actions/setup-python@v5
24
+ uses: actions/setup-python@v6
25
25
  with:
26
26
  python-version: "3.x"
27
27
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pum
3
- Version: 1.1.12
3
+ Version: 1.1.14
4
4
  Summary: Pum stands for "Postgres Upgrades Manager". It is a Database migration management tool very similar to flyway-db or Liquibase, based on metadata tables.
5
5
  Author-email: Denis Rouzaud <denis@opengis.ch>
6
6
  License-Expression: GPL-2.0-or-later
@@ -36,10 +36,11 @@ class ParameterDefinitionModel(PumCustomBaseModel):
36
36
  class HookModel(PumCustomBaseModel):
37
37
  """
38
38
  HookModel represents a migration hook configuration.
39
+ It can either execute a file (SQL or Python script) or run inline SQL code.
39
40
 
40
41
  Attributes:
41
- file: Optional path to a SQL file to execute as a hook.
42
- code: Optional Python code to execute as a hook.
42
+ file: Optional path to a SQL file or a Python script to execute as a hook.
43
+ code: Optional SQL code to execute as a hook.
43
44
  """
44
45
 
45
46
  file: Optional[str] = None
@@ -262,7 +262,7 @@ class PumConfig:
262
262
 
263
263
  def __del__(self):
264
264
  # Cleanup temporary directories and sys.path modifications
265
- if self.dependency_path:
265
+ if self.dependency_path and sys.path:
266
266
  # Remove from sys.path if present
267
267
  sys.path = [p for p in sys.path if p != str(self.dependency_path)]
268
268
  # Remove the directory if it exists and is a TemporaryDirectory
@@ -161,6 +161,10 @@ class SqlContent:
161
161
  sql: The SQL statement to execute or a path to a SQL file.
162
162
 
163
163
  """
164
+ if not isinstance(sql, (str, psycopg.sql.SQL, Path)):
165
+ raise PumSqlError(
166
+ f"SQL must be a string, psycopg.sql.SQL object or a Path object, not {type(sql)}."
167
+ )
164
168
  self.sql = sql
165
169
 
166
170
  def validate(self, parameters: dict | None) -> bool:
@@ -164,4 +164,6 @@ class Upgrader:
164
164
  for post_hook in self.config.post_hook_handlers():
165
165
  post_hook.execute(connection=connection, commit=False, parameters=parameters)
166
166
 
167
+ connection.commit()
168
+
167
169
  logger.info("Demo data '%s' installed successfully.", name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pum
3
- Version: 1.1.12
3
+ Version: 1.1.14
4
4
  Summary: Pum stands for "Postgres Upgrades Manager". It is a Database migration management tool very similar to flyway-db or Liquibase, based on metadata tables.
5
5
  Author-email: Denis Rouzaud <denis@opengis.ch>
6
6
  License-Expression: GPL-2.0-or-later
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes