You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SailsJS本地磁盘开发数据库格式及手动修改方法咨询

解决Sails.js本地磁盘数据库(sails-disk)的手动修改问题

嘿,我来帮你理清这个问题!你遇到的困惑其实是因为sails-disk根本不是SQLite格式——这就是为什么你用SQLite浏览器打不开它的原因。下面详细给你说明:

一、sails-disk的存储格式

sails-disk采用的是JSON文件存储,每个模型对应一个独立的JSON文件,默认存放在项目根目录下的.tmp/localDiskDb文件夹里。比如你有一个User模型,就会生成User.json文件,里面是一个包含所有用户记录的JSON数组,每条记录是一个符合模型结构的对象。

举个例子,User.json的内容大概是这样的:

[
  {
    "id": 1,
    "username": "test_user",
    "email": "test@example.com",
    "createdAt": "2024-05-20T14:30:00.000Z",
    "updatedAt": "2024-05-20T14:30:00.000Z"
  }
]

二、手动修改填充测试数据的步骤

要手动修改这个数据库,得遵循以下步骤,避免文件锁定或数据覆盖:

  • 第一步:停止Sails应用
    运行中的Sails会锁定这些JSON文件,直接修改不仅不会生效,还可能导致数据丢失或应用崩溃。先执行sails stop(或者直接关掉终端进程)。
  • 第二步:找到数据库文件
    打开项目根目录下的.tmp/localDiskDb文件夹,找到对应模型的JSON文件。
  • 第三步:编辑JSON文件
    用普通的文本编辑器(比如VS Code、Notepad++)打开文件,按照JSON格式添加或修改测试数据。注意要保证格式正确:每个记录是对象,放在数组里,属性名要和模型定义一致,日期字段要符合ISO格式(比如"2024-05-20T14:30:00.000Z")。
  • 第四步:重启Sails应用
    执行sails lift重启应用,新的测试数据就会被加载进来了。

三、更高效的测试数据填充方式(可选)

如果不想每次手动改JSON,推荐在Sails的config/bootstrap.js里写自动填充逻辑,这样每次启动应用都会自动生成测试数据:

module.exports.bootstrap = async function(done) {
  // 检查是否已有测试数据,避免重复创建
  const existingUser = await User.findOne({ username: 'test_user' });
  if (!existingUser) {
    await User.create({
      username: 'test_user',
      email: 'test@example.com',
      password: 'test123' // 如果有加密逻辑,记得用模型的加密方法处理
    });
    console.log('测试用户已创建');
  }
  done();
};

这样开发时每次启动应用,都会自动帮你生成测试数据,比手动改JSON更省心~

内容的提问来源于stack exchange,提问作者paul23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:18:52