Baserow Docker部署:导入设备借用CSV,再用表单新增登记

把设备借用表从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当作重建验证;那会新增第四行。数据消失先检查原目录、项目名和卷挂载,不重新导入掩盖问题。

本次完整成果是两条导入记录、一条表单记录,以及重建后的相同数据。持久化仍需另做备份;进入真实借用业务前,再按需求设计权限、审核与冲突规则。

相关推荐
程序员大雄学编程4 小时前
crontab 脚本不写日志?我把 7 个原因在 Ubuntu 上逐个复现了一遍
运维
广目软件4 小时前
HA分布式架构采集节点变更操作手册20261029
运维·服务器·ansible·zabbix·prometheus
米优4 小时前
linux下获取崩溃程序的core文件
linux·运维·服务器
半杯咖啡半行码4 小时前
QML进阶指南:状态动画与模型视图实战详解
运维·qml
qeen874 小时前
【Linux】动静态库的制作使用及ELF文件的宏观理解
linux·运维·库
fb_123455 小时前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
xie881018025 小时前
正则里的点号不匹配换行:多行模式的开关
运维·服务器·测试工具
是jin奥5 小时前
Claude Code + GitHub 自动化工作流整理
运维·自动化·github
wefg15 小时前
【Docker】基本指令
运维·docker·容器