Articles of sqlite3

使用node-sqlite将数据从一个数据库复制到另一个数据库 – 格式化“插入”语句

我正在写一个小的实用程序将数据从一个sqlite数据库文件复制到另一个。 两个文件都有相同的表结构 – 这完全是关于从一个数据库移动到另一个数据库的行。 我的代码现在: let tables: Array<string> = [ "OneTable", "AnotherTable", "DataStoredHere", "Video" ] tables.forEach((table) => { console.log(`Copying ${table} table`); sourceDB.each(`select * from ${table}`, (error, row) => { console.log(row); destDB.run(`insert into ${table} values (?)`, …row) // this is the problem }) }) 这里的row是一个js对象,每个表都有键控数据。 我敢肯定,有一个简单的方法来做到这一点,不涉及转义string数据。

nodejs同步调用:获取数据库callback,并将其parsing到前端

在我的NodeJS后端我有一个函数,我从sqlite数据库中获得一个值,我想把它发送到前端,但它总是说Object { msg: false }我想我需要一个函数,我可以做一个同步调用function。 我的代码: router.get('/', function(req, res, err){ var msg = " "; var uid = req.session.user; function printMsg(message){ msg = message; } db.getMsg(uid, printMsg); if(err){ res.send({msg : "No message available"}); } else{ res.send({msg: msg}) } }); 谁能帮我? 提前致谢。

错误:没有这样的函数:json_each在安装了JSON1的SQLite中

我通过brew安装了带有JSON1的SQLite3: brew install sqlite3 –with-json1 –with-fts5 版: 3.15.2 2016-11-28 19:13:37 bbd85d235f7037c6a033a9690534391ffeacecc8 在运行查询时,一些函数可以正常工作,比如json_extract : sqlite> SELECT json_extract(Body, '$.issue.fields.labels') FROM Event WHERE json_extract(Body, '$.issue.fields.labels') != '[]'; ["foo","bar","baz"] 但是,当我尝试使用json_each或json_tree ,它失败: sqlite> SELECT json_each(Body, '$.issue.fields.labels') FROM Event WHERE json_extract(Body, '$.issue.fields.labels') != '[]'; Error: no such function: json_each Event表中的Body字段是一个有效的JSONstring: {"issue":{"fields":{"labels": ["foo","bar","baz"]}}} 而labels值是一个数组。 我已经阅读了文档(并查看了json_each示例 ),search了interwebs,但找不到任何其他要求来启用它。 我做错了什么,或者:我如何从json_each / json_tree中获得好处?

什么时候用node-sqlite3closures数据库并表示?

我的问题是找出何时closures从expressjs后端数据库连接到sqlite数据库。 我基本上想要实现的是一个数据库连接,在整个服务器正常运行期间打开,并在服务器closures时closures。 var express = require('express') var app = express() var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(data/Test.db); //use db as needed var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port) }); //on shutdown db.close(); 我看了一下这些威胁: 堆栈溢出:process.on('exit',callback) Github的问题:应用程序没有app.close() 但build议的解决scheme不会为我工作,如果我用ctrl+c杀死我的快递服务器。 那么,如何处理服务器closures时打开的数据库连接将是一个“最佳实践”?

数据库更改时,Heroku部署的Django网页不会更新

我使用Django在Heroku中部署了一个应用程序。 Django程序使用根目录上的SQLite数据库db.sqlite3来填充其页面。 另外,还有一个插入到该数据库的Node.js刮板程序。 问题在于即使在数据库内容改变之后,硬刷新的网页也显示相同的数据。 奇怪的是,使用python manage.py runserver进行本地testing时,不会发生这种情况。 我该如何解决这个问题? 先谢谢你! 作为参考,这里是我的requirements.txt文件: Django==1.10.6 gunicorn==19.7.1 Pillow==4.0.0 selenium==3.3.1 whitenoise==3.3.0

错误:找不到模块'../node-v11-darwin-x64/node_sqlite3.node'

在我们的服务器上有一个生产版本的Ghost博客平台,其内容和样式发生了变化。 我将博客的应用程序文件夹下载到本地机器上。 说明似乎很简单。 快速开始: npm install -g grunt-cli npm install grunt init (如果你想在生产模式下运行Ghost,可以使用grunt prod ) npm start 但是当我运行grunt init我得到以下内容: Running "shell:bower" (shell) task module.js:340 throw err; ^ Error: Cannot find module 'q' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/Users/steelcollar/workspace/blog/node_modules/.bin/bower:6:9) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load […]

在Node.js中从SQLite获取表的列表

下面的代码只返回第一个表的名字,如何获得现有sqlite中所有可用表名的列表? const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('path/to/mydb.sqlite'); db.serialize(function () { db.get("select name from sqlite_master where type='table'", function (err, table) { console.log(table); }); }); 产量 {name: "meta"} 在sqlite3命令行中打开时 sqlite> .tables downloads meta urls downloads_url_chains segment_usage visit_source keyword_search_terms segments visits

node.js – sqlite3读取表中的所有logging并返回

我试图读取sqlite3表中的所有logging,并通过callback返回它们。 但似乎尽pipe使用序列化这些调用仍然是asynchronous。 这是我的代码: var readRecordsFromMediaTable = function(callback){ var db = new sqlite3.Database(file, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE); var allRecords = []; db.serialize(function() { db.each("SELECT * FROM MediaTable", function(err, row) { myLib.generateLog(levelDebug, util.inspect(row)); allRecords.push(row); } callback(allRecords); db.close(); }); } 当callback被触发时,数组打印“[]”。 是否有另一个电话,我可以做(而不是db.each),这将给我一个镜头的所有行。 我不需要在这里遍历每一行。 如果没有,我如何阅读所有的logging,然后才能调用结果的callback?

如何在phantomjs中实现快速,可查询和持久的数据库?

我一直在使用phantomjs在服务器端环境中为我做一些繁重的工作。 直到现在,我一直在内存中的数据结构(即没有做任何特别的事情),一切都很好。 但最近在一些使用情况下,我开始遇到以下问题: 内存使用率变得太高,使交换踢,严重影响我的performance。 由于内存中的数据结构不是永久的,所以不能从最后的保存点恢复(显然) 这迫使我寻找一个数据库解决scheme在幻像上使用,但我又遇到问题,而决定一个解决scheme: 我不想让自己的performance受到影响。 它必须是持久的和可查询的 我甚至如何连接到从幻影脚本里面的数据库。 谁能指导我一个令人满意的解决scheme? 注意:我几乎决定使用sqlite但是从幻影连接到它仍然是一个问题。 Nodejs提供了sqlite3节点模块,我正在尝试为幻影进行浏览。 Note注意: Browserify没有工作! 回到地面零! 🙁 感谢提前!

Node.js和sqlite:在callback中同步

我试图编码以下逻辑: if account in the DB, then update fields else insert new row with data. 这是一个primefaces操作,所以我把它当做SQL事务(DB是sqlite3): BEGIN; SELECT rowid FROM Account WHERE email=?; — Depending on SELECT's result, run INSERT or UPDATE: INSERT INTO Accounts(email, name, phone) VALUES (?, ?, ?); UPDATE Accounts SET name=? phone=? WHERE rowid=?; COMMIT; 我决定在select的callback中运行insert或update 。 但是到目前为止,SQL语句不再同步! 在同步块结束和callback执行之间,可以执行任意的SQL语句。 db.synchronized(function() { […]