@ai-devtools/dbspec-windows-x64 1.6.4 → 1.6.6

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbspec
3
- Version: 1.6.4
3
+ Version: 1.6.6
4
4
  Summary: DBSpec: CLI/TUI for database design (Excel as DSL)
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -93,6 +93,7 @@ src/migrations/collation_catalog.py
93
93
  src/migrations/collation_rendering.py
94
94
  src/migrations/collations.py
95
95
  src/migrations/commands.py
96
+ src/migrations/default_rendering.py
96
97
  src/migrations/defaults.py
97
98
  src/migrations/errors.py
98
99
  src/migrations/exact.py
@@ -113,6 +114,7 @@ src/migrations/reference_data_replacement.py
113
114
  src/migrations/reference_data_replacement_downgrade.py
114
115
  src/migrations/reference_data_sql.py
115
116
  src/migrations/renderers.py
117
+ src/migrations/rendering_constants.py
116
118
  src/migrations/revision.py
117
119
  src/migrations/runner.py
118
120
  src/migrations/sequence_sql.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dbspec"
7
- version = "1.6.4"
7
+ version = "1.6.6"
8
8
  description = "DBSpec: CLI/TUI for database design (Excel as DSL)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -93,3 +93,23 @@ Jinja-параметров, зависящий только от стандар
93
93
  таблицы допустимы, но состав каждой генерируемой таблицы должен совпасть с SSOT.
94
94
  При ошибке прежний выходной каталог сохраняется. Установка приложения или соединение
95
95
  с БД для штатных шаблонов не требуются.
96
+
97
+
98
+ ## Передача SQL default (1.6.5)
99
+
100
+ `col.server_default` по-прежнему содержит исходное SQL-выражение после применения
101
+ правил строковых defaults. Штатный шаблон использует `sql_default_renderer`
102
+ (глобальное значение Jinja `literal_column`) и фильтр `py_string` для передачи
103
+ SQL без интерпретации `:name` как bind-параметра. Значения с двоеточием и обратным
104
+ слешем сохраняются в PostgreSQL DDL. Имя `literal_column` зарезервировано при выборе
105
+ ORM-атрибутов, поэтому одноимённая SQL-колонка не перекрывает импорт.
106
+
107
+ Существующие проектные шаблоны не перезаписываются при инициализации. Чтобы
108
+ получить исправление в своей копии `model.py.j2`, замените рендеринг
109
+ `server_default=text(...)` на `server_default=literal_column(...)` в ветках ORM
110
+ и Core, сохранив фильтр `py_string`. Генератор добавляет `literal_column` в
111
+ `table.sa_imports`; импорт `text` оставлен для совместимости старых шаблонов.
112
+ Формат контекста `col.server_default` не меняется. Это передача SQL, а не
113
+ проверка безопасности выражений. Autogenerate через DBSpec сохраняет
114
+ `literal_column` при рендеринге ревизий; при прямом вызове Alembic без DBSpec
115
+ соответствующий `render_item` автоматически не устанавливается.
@@ -81,7 +81,7 @@ from ..{{ common_dir_name }}.base import metadata
81
81
  {% if col.sequence -%}
82
82
  {% set _ = col_args.append('server_default=' ~ col.sequence.var_name ~ '.next_value()') -%}
83
83
  {% elif col.server_default -%}
84
- {% set _ = col_args.append('server_default=text(' ~ (col.server_default | py_string) ~ ')') -%}
84
+ {% set _ = col_args.append('server_default=' ~ sql_default_renderer ~ '(' ~ (col.server_default | py_string) ~ ')') -%}
85
85
  {% endif -%}
86
86
  {% if include_comments and col.description -%}
87
87
  {% set _ = col_args.append('comment=' ~ (col.description | py_repr)) -%}
@@ -326,7 +326,7 @@ class {{ table.class_name }}({{ base_class }}):
326
326
  {% if col.sequence -%}
327
327
  {% set _ = col_args.append('server_default=' ~ col.sequence.var_name ~ '.next_value()') -%}
328
328
  {% elif col.server_default -%}
329
- {% set _ = col_args.append('server_default=text(' ~ (col.server_default | py_string) ~ ')') -%}
329
+ {% set _ = col_args.append('server_default=' ~ sql_default_renderer ~ '(' ~ (col.server_default | py_string) ~ ')') -%}
330
330
  {% endif -%}
331
331
  {% if include_comments and col.description -%}
332
332
  {% set _ = col_args.append('comment=' ~ (col.description | py_repr)) -%}
Binary file
package/package.json CHANGED
@@ -24,5 +24,5 @@
24
24
  "publishConfig": {
25
25
  "access": "public"
26
26
  },
27
- "version": "1.6.4"
27
+ "version": "1.6.6"
28
28
  }