mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-21 20:06:06 +00:00
fix: conflict in table plugin_settings
This commit is contained in:
@@ -8,17 +8,24 @@ class DBMigratePluginInstallSource(migration.DBMigration):
|
|||||||
|
|
||||||
async def upgrade(self):
|
async def upgrade(self):
|
||||||
"""升级"""
|
"""升级"""
|
||||||
# add new column install_source, use default value 'github', via alter table
|
# 查询表结构获取所有列名(异步执行 SQL)
|
||||||
await self.ap.persistence_mgr.execute_async(
|
result = await self.ap.persistence_mgr.execute_async(sqlalchemy.text('PRAGMA table_info(plugin_settings);'))
|
||||||
sqlalchemy.text(
|
# fetchall() 是同步方法,无需 await
|
||||||
"ALTER TABLE plugin_settings ADD COLUMN install_source VARCHAR(255) NOT NULL DEFAULT 'github'"
|
columns = [row[1] for row in result.fetchall()]
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# add new column install_info, use default value {}, via alter table
|
# 检查并添加 install_source 列
|
||||||
await self.ap.persistence_mgr.execute_async(
|
if 'install_source' not in columns:
|
||||||
sqlalchemy.text("ALTER TABLE plugin_settings ADD COLUMN install_info JSON NOT NULL DEFAULT '{}'")
|
await self.ap.persistence_mgr.execute_async(
|
||||||
)
|
sqlalchemy.text(
|
||||||
|
"ALTER TABLE plugin_settings ADD COLUMN install_source VARCHAR(255) NOT NULL DEFAULT 'github'"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 检查并添加 install_info 列
|
||||||
|
if 'install_info' not in columns:
|
||||||
|
await self.ap.persistence_mgr.execute_async(
|
||||||
|
sqlalchemy.text("ALTER TABLE plugin_settings ADD COLUMN install_info JSON NOT NULL DEFAULT '{}'")
|
||||||
|
)
|
||||||
|
|
||||||
async def downgrade(self):
|
async def downgrade(self):
|
||||||
"""降级"""
|
"""降级"""
|
||||||
|
|||||||
Reference in New Issue
Block a user