把设备借用表从CSV导入Baserow,下一步不只是打开表格:字段应保持正确类型,表单提交还要进入同一张表。本文用两条模拟记录完成导入,再新增一条表单登记,并按字段、表单和Grid视图排查"提交后找不到新行"。配置按官方资料整理,未运行Docker或实测提交,人员、设备与日期均为演示数据。
1. 先准备五列、两行的输入
Baserow适合把分散登记整理为共享数据表,再用Form视图收集新增记录。本例用于会议设备、测试设备的借用登记,不包含库存锁定、审批或防止重复借用的规则。
在打开浏览器的电脑上创建CSV;若浏览器就在Docker主机,可仍在该主机执行。Linux/macOS终端可用:
bash
mkdir -p "$HOME/baserow-demo-input"
cat > "$HOME/baserow-demo-input/borrow-demo.csv" <<'CSV'
登记编号,申请人,设备名称,使用日期,用途
DEMO-001,演示甲,投影仪A,2026-10-29,演示会议
DEMO-002,演示乙,测试手机B,2026-10-30,演示联调
CSV
cat "$HOME/baserow-demo-input/borrow-demo.csv"
应看到一行表头和两行数据。用UTF-8保存,逗号分隔,日期保持年月日;不要把表头算成第一条借用记录。远程部署时,文件选择框读取自己电脑,而不是云主机路径。
2. 部署固定版本的完整应用
在Linux Docker主机的Bash检查:
bash
docker version
docker compose version
docker compose ls --all
docker volume ls --filter name=baserow-demo_baserow_data
若列表已有同名项目或精确同名baserow-demo_baserow_data卷,先停下核归属,另选未用项目名时同步改配置,不删除旧卷;停止或已down的旧实例也不能直接复用。Docker需返回服务端信息,Compose需为V2;服务连接或权限有误先处理。确认没有同名baserow-demo项目。本例固定Baserow 2.4.1,all-in-one镜像包含PostgreSQL、Redis和Caddy,不另加拆分部署的数据库依赖与密钥。
bash
mkdir "$HOME/baserow-demo" && cd "$HOME/baserow-demo"
若目录已存在则停止,不覆盖旧文件;换空目录时也要修改显式项目名,避免复用旧卷。成功后保存配置:
bash
cat > compose.yaml <<'YAML'
name: baserow-demo
services:
baserow:
image: docker.1ms.run/baserow/baserow:2.4.1
environment:
BASEROW_PUBLIC_URL: http://localhost:8080
ports:
- "127.0.0.1:8080:80"
volumes:
- baserow_data:/baserow/data
restart: unless-stopped
volumes:
baserow_data: {}
YAML
docker compose config --quiet
校验无报错才继续;失败按行号修正。应用数据放命名卷,管理入口只绑定宿主回环地址。通过毫秒镜像准备应用镜像:
bash
docker compose pull
拉取失败先处理仓库、权限或网络报错,成功后启动:
bash
docker compose up -d
docker compose ps
curl -I http://localhost:8080/
首次初始化需等待。持续连接失败、5xx或服务反复退出时看日志,不先创建业务表:
bash
docker compose logs --tail=100 baserow
HTTP响应只证明入口可达,还要用浏览器确认出现Baserow。打开http://localhost:8080,注册本机实例账号。远程机可先在电脑建立SSH隧道,再从电脑访问同一地址:
bash
ssh -N -L 8080:127.0.0.1:8080 用户名@主机地址
替换占位地址并保持终端打开;端口冲突或SSH错误先修正,不把监听改成公网。
3. 导入时核对表头与字段类型
进入工作区,选+ Add new → Database,名称填"设备登记演示",点Create。新库可能带默认表,另外选+ New table,表名填"设备借用登记",选Import CSV file并选择电脑上的borrow-demo.csv,启用首行作为表头。预览应为五字段、两条记录,确认后点Add table。
| 字段 | 本例类型 | 核对内容 |
|---|---|---|
| 登记编号、申请人、设备名称 | Single line text | 编号与名称完整,没有挤进同一列 |
| 使用日期 | Date,格式YYYY-MM-DD | 两个日期分别为29日、30日 |
| 用途 | Long text | 两段用途与CSV对应 |
导入后按上表设置类型,不假定日期已自动转换。若日期转换后变空,先对照原CSV和日期格式,修正后再继续;不要在字段异常的表上直接发布表单。出现中文乱码回到文件编码检查,出现整行集中在一列先核分隔设置。
这一步不要只用行数验收。即使正好两行,日期也可能仍是文字,编号可能没有落到预期字段。逐行核两个设备名称、两个日期和用途;导入了多余空行或表头行时,先修表内结构,保留原CSV作对照,再继续第三行验证。
4. 在同表建立借用登记Form
在刚导入的表中打开视图下拉,选择Form,可见性选Collaborative,名称填"借用登记",点Create view。将登记编号、申请人、设备名称、使用日期四项设为Required,用途保留可填写。
从Share form取得实际生成的链接,不手写表单路径。用无痕窗口打开它,在同一可达的localhost:8080实例填写:DEMO-003 / 演示丙 / 投影仪A / 2026-10-31 / 演示培训,提交一次。
普通Form的链接持有者可以不登录账号提交,但这不意味着localhost链接能从其它电脑直接访问。本例只在本机或自己的隧道验证,不把管理账号或整个工作区交给提交者。

5. 新行找不到,按三处逐一确认
回到同一张表的Grid视图,清除过滤和搜索,核对是否有三条记录,以及DEMO-003的五项内容。不要只看表单完成提示就结束。
| 现象 | 先检查 | 下一步 |
|---|---|---|
| 表单打不开 | 链接域名、端口与本机/隧道可达性 | 使用Share form实际链接,修正连接 |
| 无法提交 | 四个Required是否填完、日期是否有效 | 修正表单报错,再提交一次 |
| 提示完成但Grid没看到 | 是否同表、是否有过滤或搜索 | 回原表清条件,按登记编号找 |
| 超过三行 | 是否重复点击或刷新后再次提交 | 核对重复记录,不继续补交 |
CSV表与Form接收表必须是同一对象;新建另一张同名表不会自动接收原表单记录。普通Form只新增行,本教程没有设置编号唯一性或借用冲突校验,也不会自动审批,不能据三行演示推断设备已获准借出。
6. 重建后再核三条记录
回到Docker主机原目录停止容器:
bash
cd "$HOME/baserow-demo"
docker compose down
保留命名卷,不使用删除卷的选项,再启动同一项目:
bash
docker compose up -d
docker compose ps
服务恢复后登录,回原数据库、原表的Grid,清除条件,再核三行及日期。不要再次提交DEMO-003当作重建验证;那会新增第四行。数据消失先检查原目录、项目名和卷挂载,不重新导入掩盖问题。
本次完整成果是两条导入记录、一条表单记录,以及重建后的相同数据。持久化仍需另做备份;进入真实借用业务前,再按需求设计权限、审核与冲突规则。