tachybase_todo/docs/guide/kernel-principle/installation-startup.zh-CN.md
chenos ca7af9c8cc
feat: new version of the documentation (#95)
* feat: new version of the documentation

* feat: add English catalog translation

* Update quickstart.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* Update quickstart.zh-CN.md

* feat: update quickstart

* update doc

* update pepository api doc

Co-authored-by: ChengLei Shao <chareice@live.com>
2021-10-28 22:55:51 +08:00

74 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
order: 3
---
# 项目安装和启动流程
## 项目安装
```bash
yarn nocobase init
```
- app.constructor()
- app.parse()
- yarn nocobase init
初始化安装
- app.load()
加载配置
- app.emitAsync('beforeLoad')
所有配置加载之前的钩子
- app.pluginManager.load()
按顺序载入所有激活的插件的配置
- 加载 plugin-collections 的配置
- 添加 app.on('init') 监听
- db.getModel('collections').load()
把 collections 表的配置都导入 db.table()
- app.db.sync({force: false})
再执行 sync创建 collections 表里配置的数据表
- app.emitAsync('afterLoad')
所有配置加载之后的钩子
- app.db.sync({force: true})
根据配置生成数据表、字段、索引等
- app.emitAsync('init')
执行所有 init listeners一般是初始化的数据操作
- 触发 plugin-collections 的 init 事件,数据表就创建好了
- app.stop()
结束
## 项目启动
```bash
yarn nocobase start --init --sync
# --init 用于启动时快捷安装
# --sync 开发环境时,当 app.collection() 有更新时快速建表或更新表
```
- app.constructor()
- app.parse()
- yarn nocobase start
初始化安装
- app.load()
加载配置
- app.emitAsync('beforeLoad')
所有配置加载之前的钩子
- app.pluginManager.load()
按顺序载入所有激活的插件的配置
- 加载 plugin-collections 的配置
- 添加 app.on('start') 监听
- db.getModel('collections').load()
把 collections 表的配置都导入 db.table(),在 start 流程里不需要再 db.sync
- app.emitAsync('afterLoad')
所有配置加载之后的钩子
- app.db.sync({force: false})
yarn nocobase start --sync 有更新时快速建表或更新表
yarn nocobase start --init 快捷 init
- app.emitAsync('init')
yarn nocobase start --init 快捷 init
- app.emitAsync('start')
执行所有 start listeners一般是从数据表里读取一些必要的数据
- app.listen()
启动 http server