|
23 | 23 | from watchfiles import Change, PythonFilter |
24 | 24 |
|
25 | 25 | from backend import __version__ |
| 26 | +from backend.common.dataclasses import PluginEntry |
26 | 27 | from backend.common.enums import DataBaseType, PrimaryKeyType |
27 | 28 | from backend.common.exception.errors import BaseExceptionError |
28 | 29 | from backend.common.model import MappedBase |
|
47 | 48 | from backend.plugin.core import ( |
48 | 49 | get_plugins, |
49 | 50 | get_required_plugins, |
| 51 | + load_plugin_config, |
| 52 | + resolve_plugin_order, |
50 | 53 | ) |
51 | 54 | from backend.plugin.installer import install_git_frontend_plugin, install_git_plugin, install_zip_plugin, zip_plugin |
52 | 55 | from backend.plugin.installer import remove_plugin as _remove_plugin |
53 | 56 | from backend.plugin.requirements import install_requirements_async, uninstall_requirements_async |
54 | 57 | from backend.plugin.sql import build_sql_filename, get_plugin_destroy_sql, get_plugin_sql |
| 58 | +from backend.plugin.validator import validate_plugin_config |
55 | 59 | from backend.utils.console import console |
56 | 60 | from backend.utils.dynamic_import import import_module_cached |
57 | 61 | from backend.utils.sql_parser import parse_sql_script |
@@ -539,8 +543,14 @@ async def get_sql_scripts() -> list[str]: |
539 | 543 | if await anyio.Path(main_sql_file).exists(): |
540 | 544 | sql_scripts.append(str(main_sql_file)) |
541 | 545 |
|
| 546 | + plugins = [] |
542 | 547 | for plugin in get_plugins(): |
543 | | - plugin_sql = await get_plugin_sql(plugin, settings.DATABASE_TYPE, settings.DATABASE_PK_MODE) |
| 548 | + plugin_config = load_plugin_config(plugin) |
| 549 | + validate_plugin_config(plugin, plugin_config) |
| 550 | + plugins.append(PluginEntry(name=plugin, depends_on=plugin_config['plugin'].get('depends_on'))) |
| 551 | + |
| 552 | + for plugin in resolve_plugin_order(plugins): |
| 553 | + plugin_sql = await get_plugin_sql(plugin.name, settings.DATABASE_TYPE, settings.DATABASE_PK_MODE) |
544 | 554 | if plugin_sql: |
545 | 555 | sql_scripts.append(plugin_sql) |
546 | 556 |
|
|
0 commit comments