You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/docs/SEEDS.md

54 lines
894 B
Markdown

# 种子数据
iTi-Flask 不提供框架 seed。
业务 seed 由业务项目维护。
## 规则
seed 代码必须:
- 幂等。
- 可重复执行。
- 按唯一键 upsert。
- 不删除用户数据。
- 不替代 migration 修改表结构。
seed 适合写:
- 业务默认配置。
- 业务字典。
- 演示数据。
seed 不适合写:
- 框架内部数据。
- 其它包的数据。
- 运行时数据库快照。
## 业务命令
业务项目可以在模块中注册自己的 CLI 命令:
```python
import click
class ExampleModule:
name = "example"
def register_commands(self, app):
@click.command("seed-example")
def seed_example():
click.echo("seeded")
app.cli.add_command(seed_example)
```
执行:
```bash
uv run python -m flask --app app.py seed-example
```
需要系统业务 seed 时,查看 `iTi-System` 文档。