feat(deploy): 生产增量上线批次(2026-09-09)——dmig补DROP COLUMN幂等守卫(生产llm表由create_tables按最新models建出无旧列,m0009/m0010类删列迁移直跑1091中止);m0009_llm_model_drop_price_fields改号m0015(与m0009_rag_pipeline_access撞号被dict静默覆盖从未执行,实测两文件id同为m0009);m0016种子迁移14表(pricing_program/timing+product/category+discount+acctres/storres规格映射+pipeline_pricing_map+llm_vendor/model/api_profile/org_policy仅org0,mysqldump导出INSERT IGNORE幂等,api_key密文不进git走隔离通道);m0017(env=prod)business_date播种CURDATE+切日交accounting新端点dayend.dspy;rp.json注册dayend(any段,cron本机调用)
This commit is contained in:
parent
f0d32f3be1
commit
58b37588f4
@ -19,7 +19,8 @@
|
||||
"/unipay/usermenu.ui",
|
||||
"/univer-office",
|
||||
"/univer-office/**",
|
||||
"/accounting/api/fetch_forex_rates.dspy"
|
||||
"/accounting/api/fetch_forex_rates.dspy",
|
||||
"/accounting/api/dayend.dspy"
|
||||
],
|
||||
"logined": [
|
||||
"/idfile",
|
||||
|
||||
@ -167,6 +167,14 @@ def render_step(conf, step, direction):
|
||||
if m:
|
||||
if column_exists(conf, m.group(1), m.group(3)):
|
||||
return [], "列已存在: %s.%s" % (m.group(1), m.group(3))
|
||||
# DROP COLUMN 幂等守卫:列已不存在则跳过(生产表由 create_tables.py 按最新
|
||||
# models 建出、天然没有旧列,m0009/m0010 类删列迁移直跑会 1091 中止)
|
||||
m = re.match(r"ALTER\s+TABLE\s+`?(\w+)`?\s+DROP\s+(COLUMN\s+)?`?(\w+)`?", sql, re.I)
|
||||
if m:
|
||||
if not table_exists(conf, m.group(1)):
|
||||
return [], "表不存在: %s" % m.group(1)
|
||||
if not column_exists(conf, m.group(1), m.group(3)):
|
||||
return [], "列已不存在: %s.%s" % (m.group(1), m.group(3))
|
||||
m = re.match(r"CREATE\s+(UNIQUE\s+)?INDEX\s+`?(\w+)`?\s+ON\s+`?(\w+)`?", sql, re.I)
|
||||
if m:
|
||||
if index_exists(conf, m.group(3), m.group(2)):
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "m0009",
|
||||
"title": "llm_model 删除价格/成本四字段(price_input/price_output/cost_input/cost_output)——定价统一走 ppid 定价平台,模型表不再存单价(2026-09-04 用户定夺)",
|
||||
"backup_tables": ["llm_model"],
|
||||
"up": [
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model DROP COLUMN price_input"},
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model DROP COLUMN price_output"},
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model DROP COLUMN cost_input"},
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model DROP COLUMN cost_output"}
|
||||
],
|
||||
"down": [
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model ADD COLUMN price_input DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输入单价(元/千token)'"},
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model ADD COLUMN price_output DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输出单价(元/千token)'"},
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model ADD COLUMN cost_input DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输入成本(元/千token)'"},
|
||||
{"op": "sql", "sql": "ALTER TABLE llm_model ADD COLUMN cost_output DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输出成本(元/千token)'"}
|
||||
]
|
||||
}
|
||||
43
deploy/migrations/m0015_llm_model_drop_price_fields.json
Normal file
43
deploy/migrations/m0015_llm_model_drop_price_fields.json
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "m0015",
|
||||
"title": "llm_model 删除价格/成本四字段(price_input/price_output/cost_input/cost_output)——定价统一走 ppid 定价平台,模型表不再存单价(2026-09-04 用户定夺)(原编号m0009与rag迁移撞号被静默覆盖从未执行,2026-09-09改号;测试库列已不存在,守卫将全skip)",
|
||||
"backup_tables": [
|
||||
"llm_model"
|
||||
],
|
||||
"up": [
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model DROP COLUMN price_input"
|
||||
},
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model DROP COLUMN price_output"
|
||||
},
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model DROP COLUMN cost_input"
|
||||
},
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model DROP COLUMN cost_output"
|
||||
}
|
||||
],
|
||||
"down": [
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model ADD COLUMN price_input DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输入单价(元/千token)'"
|
||||
},
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model ADD COLUMN price_output DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输出单价(元/千token)'"
|
||||
},
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model ADD COLUMN cost_input DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输入成本(元/千token)'"
|
||||
},
|
||||
{
|
||||
"op": "sql",
|
||||
"sql": "ALTER TABLE llm_model ADD COLUMN cost_output DECIMAL(12,6) NOT NULL DEFAULT 0 COMMENT '输出成本(元/千token)'"
|
||||
}
|
||||
]
|
||||
}
|
||||
79
deploy/migrations/m0016_llm_platform_seed.json
Normal file
79
deploy/migrations/m0016_llm_platform_seed.json
Normal file
File diff suppressed because one or more lines are too long
12
deploy/migrations/m0017_business_date_prod.json
Normal file
12
deploy/migrations/m0017_business_date_prod.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "m0017",
|
||||
"env": "prod",
|
||||
"title": "business_date 生产播种(=部署当日CURDATE)+切日交 cron(/accounting/api/dayend.dspy 每日00:05)——生产 params 从未有此参数,get_business_date 直接抛 BusinessDateParamsError,记账链路(consume/bill)全断;值环境专属不从测试迁(测试停在2026-08-26);不可逆(回退走备份恢复)",
|
||||
"backup_tables": ["params"],
|
||||
"up": [
|
||||
{"op": "sql", "sql": "INSERT INTO params (id, params_name, params_value) SELECT 'business_date', 'business_date', CURDATE() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM params WHERE params_name='business_date')"}
|
||||
],
|
||||
"down": [
|
||||
{"op": "sql", "sql": "DELETE FROM params WHERE params_name='business_date'"}
|
||||
]
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user