fix: add migration to refresh collation and reindex database

This commit is contained in:
CaptainB 2025-08-19 13:55:10 +08:00
parent a10991ad6d
commit 0e1ae663b1

View File

@ -0,0 +1,26 @@
from django.db import migrations
def refresh_collation_and_reindex(apps, schema_editor):
# 获取当前数据库名
db_name = schema_editor.connection.settings_dict["NAME"]
with schema_editor.connection.cursor() as cursor:
cursor.execute(f'ALTER DATABASE "{db_name}" REFRESH COLLATION VERSION;')
cursor.execute(f'REINDEX DATABASE "{db_name}";')
def noop(apps, schema_editor):
# 不可逆操作,留空
pass
class Migration(migrations.Migration):
atomic = False # ALTER DATABASE/REINDEX 需在事务外执行
dependencies = [
('setting', '0010_log'),
]
operations = [
migrations.RunPython(refresh_collation_and_reindex, reverse_code=noop),
]