48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# PostgreSQL 部署脚本
|
||
|
||
本目录提供在测试/预发布环境快速拉起 PostgreSQL 的脚本,复用线上同名数据库与账号,方便迁移/恢复。
|
||
|
||
## 目录结构
|
||
|
||
- `create_databases.sql`:创建四个业务库与对应角色(可多次执行,存在则跳过)。
|
||
- `bootstrap.ps1`:PowerShell 包装脚本,调用 `psql` 执行 SQL。
|
||
|
||
## 前置条件
|
||
|
||
1. 已安装 PostgreSQL 12+,并能以管理员身份访问(默认使用 `postgres`)。
|
||
2. 本地已配置 `psql` 可执行命令。
|
||
|
||
## 使用方法
|
||
|
||
```powershell
|
||
cd deploy/postgres
|
||
.\bootstrap.ps1 `
|
||
-Host 120.53.222.17 `
|
||
-Port 5432 `
|
||
-AdminUser postgres `
|
||
-AdminPassword "超级管理员密码"
|
||
```
|
||
|
||
脚本会:
|
||
|
||
1. 创建/更新以下角色与库:
|
||
- `app_user` / `takeout_app_db`
|
||
- `identity_user` / `takeout_identity_db`
|
||
- `dictionary_user` / `takeout_dictionary_db`
|
||
- `hangfire_user` / `takeout_hangfire_db`
|
||
2. 为库设置 COMMENT,授予 Schema `public` 的 CRUD 权限。
|
||
3. 输出执行日志,失败时终止。
|
||
|
||
## 自定义
|
||
|
||
- 如需修改密码或新增库,编辑 `create_databases.sql` 后重新运行脚本。
|
||
- 若在本地拉起测试库,可把 `Host` 指向 `localhost`,其余参数保持一致。
|
||
|
||
## 常见问题
|
||
|
||
| 问题 | 处理方式 |
|
||
| --- | --- |
|
||
| `psql : command not found` | 确认 PostgreSQL bin 目录已加入 PATH。 |
|
||
| `permission denied to create database` | 改用具有 `CREATEDB` 权限的管理员执行脚本。 |
|
||
| 需要删除库 | 先 `DROP DATABASE xxx`,再运行脚本重新创建。 |
|