Hi.Events 的 demo:seed 命令:一条指令给空库种出四个能直接卖票的演示活动
【免费下载链接】Hi.EventsOpen-source event management and ticket selling platform — perfect for concerts, conferences, and everything in between 🎟️ If you find this project helpful, please consider giving us a star ⭐️项目地址: https://gitcode.com/GitHub_Trending/hi/Hi.Events
Hi.Events 的demo:seed命令解决"装完一片空白、不知道平台长什么样"的问题:一条命令向数据库写入四场配置完整的演示活动。读完这篇,你能独立搭起环境、种出演示数据,并把常见报错一次排查到位。
30 秒跑起来
进仓库的 docker/all-in-one/ 目录,把 docker/all-in-one/.env.example 复制为.env,用openssl rand -base64 32生成APP_KEY和JWT_SECRET填进去,然后跑docker compose up -d。三个容器(Postgres、Redis、应用本体)起来后,打开 http://localhost:8123 就是登录页。
接着在容器里种数据:
docker compose exec all-in-one php artisan demo:seed --confirm成功时结尾会打印一张表格,列出每场活动的名称、事件 ID、occurrence 场次数和促销码,并附上每个活动页的公开链接,例如:
SUBTERRA 004 — Nite Kernel, Ánima, Basil Wren,促销码boxcarrier、earlydoorsStillroom — Morning Practice & Weekend Specials,促销码firstmat、bringafriendRUNTIME 26两天制技术大会、TIDELINE三日期末音乐节
看到这四项齐了,说明活动、产品、促销码、问卷全链路都写成功了。打开任意一条链接,应该能看到带封面图和主题色的完整公开页面,如下面这张夜店场演示活动的封面:
它到底在查什么
demo:seed走的是和界面完全相同的一组 handler——创建位置、活动、产品、问卷、促销码、主题设置,只是替你点完了所有按钮。四个事件各自覆盖不同的平台能力:
- nightclub(夜店):四档按发售期升价的 General Admission、学生票、免费 guestlist(需促销码解锁)、五个 add-on、结账问卷、暗色主题
- conference(会议):单人票、5 人起团队票、社区票、线上票、内部使用的 Speaker & crew 票
- yoga(瑜伽):18 周周期课,每周 5 天每天 2 场 occurrence,周末专场独立覆盖价格,排除公共假期和闭馆周
- festival(音乐节):多日票、Under 12s、Crew & artist guest 票
此外还会自动创建一个 demo 账号(默认邮箱demo+<时间戳>@example.com,密码DemoPass123!),把账号直接标为已验证,并为每场活动上传封面图。
报错了,对应查什么
| 现象 | 根因 | 修复 |
|---|---|---|
demo:seed writes demo events... | 没带确认参数,这是防误操作的门禁 | 追加--confirm重跑 |
Failed while seeding ...中途失败 | 数据库或配置异常,事务已回滚 | 确认.env里APP_KEY、JWT_SECRET已生成,容器内php artisan migrate --force通过 |
| 命令成功但公开页看不到活动 | 绑定的已有账号未通过验证 | 给该账号补验证,或让命令自己创建 demo 账号 |
Organizer X does not exist | --organizer-id指向的 organizer 不存在 | 查organizers表拿正确 ID |
Demo cover image is missing | 镜像里缺少backend/resources/demo/covers/资源 | 重建 all-in-one 镜像 |
退出码 0 表示全部写入成功,1 表示失败且该批次已回滚;脚本里可以直接用php artisan demo:seed --confirm || exit 1做前置拦截。
把它焊进工作流
本地一键起环境,起完顺手种数据:
cd docker/all-in-one && cp .env.example .env echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env docker compose up -d docker compose exec all-in-one php artisan demo:seed --confirm演示或验收环境里,种到指定组织者名下、只跑两类活动、指定货币:
docker compose exec all-in-one php artisan demo:seed \ --confirm --organizer-id=12 --only=nightclub,yoga --currency=USD容易忽略的几个细节
如果你不指定--email,命令会生成demo+<时间戳>@example.com的新账号并自动打上已验证标记;想把演示数据归到自己名下,直接传--organizer-id加--email组合即可。
如果你用--only挑活动,取值必须精确匹配四个 key:nightclub、conference、yoga、festival,写错任何一个都会列出让重选,不会部分执行。
如果你传了--organizer-id,命令不会新建账号,而是取该 organizer 账号下的第一个用户;--timezone默认Europe/Dublin、--currency默认EUR,不传就按默认落库。
一页速查
| 项 | 值 |
|---|---|
| 起环境 | docker compose up -d(docker/all-in-one/ 目录) |
| 种全部 | php artisan demo:seed --confirm |
| 指定组织者 | --organizer-id=<id> |
| 只种部分 | --only=nightclub,conference,yoga,festival |
| 账号凭据 | --email=/--password=(默认DemoPass123!) |
| 时区 / 货币 | --timezone=/--currency=(默认Europe/Dublin/EUR) |
| 退出码 | 0 成功,1 失败且回滚 |
演示数据会写入账号、产品、订单相关的整张数据面,所以只种干净的本地库,别种到生产。
【免费下载链接】Hi.EventsOpen-source event management and ticket selling platform — perfect for concerts, conferences, and everything in between 🎟️ If you find this project helpful, please consider giving us a star ⭐️项目地址: https://gitcode.com/GitHub_Trending/hi/Hi.Events
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考