Tag: postgresql

你如何使用pg-promise连接到没有密码的Postgres数据库?

我试图初始化一个连接到我的PG数据库这样做: pgp = require('pg-promise')({ // Initialization Options }), cn = { host: 'activity.postgres.activity', // server name or IP address; port: 5432, database: 'activity', user: 'postgres', password: '' }, db = pgp(cn), 但我不断收到: 错误:连接ECONNREFUSED 172.20.0.3:5432 任何想法为什么? 解决:在postgresql.conf文件中设置listen_addresses ='*'

如何提高PostgreSQL在INSERT上的性能?

我写了一个Node.js应用程序,它将大量logging写入PostgreSQL 9.6数据库。 不幸的是,这感觉很慢。 为了能够testing一些东西,我创build了一个简短但完整的程序来重现场景: 'use strict'; const async = require('async'), pg = require('pg'), uuid = require('uuidv4'); const pool = new pg.Pool({ protocol: 'pg', user: 'golo', host: 'localhost', port: 5432, database: 'golo' }); const records = []; for (let i = 0; i < 10000; i++) { records.push({ id: uuid(), revision: i, data: { foo: 'bar', […]

在Heroku部署之间保持less量状态的好方法是什么?

我有一个在Heroku上运行的小型Node.js应用程序,目前不需要或者有任何持久的状态存储。 但是,我想添加一个function,要求在部署之间保留一些非常小的状态(小于1KB的数据)。 什么是最好的方式来添加这个状态到我的Heroku应用程序,而仍然保留这个应用程序的能力很容易部署与“部署到Heroku”button? 到目前为止,我所看到的唯一可能的解决scheme将涉及附加一个免费的PostgreSQL插件,这似乎是大规模的矫枉过正。

Node-postgresdate不准确保存

我正在使用Node.js,Postgres和node-postgres库。 当我尝试用这样的代码插入一个新的logging与当前date: client.query('INSERT INTO ideas(date) VALUES($1)', [new Date()], …); 这运行正常,没有错误。 但是,当我对数据库运行select语句并logging结果时,给出的date显示为: Wed Nov 20 2013 19:00:00 GMT-0500 (EST) 除了当插入logging的时候,这是好的,11月21日是星期四。时间是5:47,而不是7:00。 我再次运行代码,不pipe时间如何,即使下一个小时已经开始,它也会保存相同的不准确的date。 这使我相信,出于某种原因,它只存储date而不是时间或分钟。 另外,date只有一天的事实表明这个问题可能与node-postgres处理date的方式有关。 我知道这不是一个计算当前date时,将它传递到查询中的问题,因为我loggingnew Date() ,它是准确的date,分钟,小时和秒。 任何有关这个问题的帮助将不胜感激。 谢谢!

通过nodejs和websockets保存从openlayers到postgis的function

我正在尝试通过websockets将创build在vector图层(openlayers)上的特性保存到postgreSQL 9.1 / postGIS 2.0中。 我正在使用websockets,因为我正在插入表单数据,以及几何。 我的服务器是NodeJS 0.10.12和pg模块。 我正在尝试将一个要素的几何体转换为一个string,将其从字母和括号中除去,并只将数字发送给服务器。 我在服务器端获得有关几何的语法错误。 尽pipe尝试了很多东西和不同的语法,我仍然无法解决这个问题。 客户端(片段) //create websockets var so = new WebSocket("ws://localhost:8000"); //error report for websockets so.onerror=function (evt) {saveMSG.textContent = evt;} //open websockets so.onopen = function(){ //get geometry var jak=map.layers[2].features[0].geometry; //make it a string var as=new String(jak); //keep the numbers var hul=as.substring(11,as.length-1); //make it WKT var god=hul.toString(); //send […]

用brianc / node-postgres批量插入到Postgres中

我在nodejs中有下面的代码使用pg( https://github.com/brianc/node-postgres )我的代码为员工创build订阅是这样的。 client.query( 'INSERT INTO subscriptions (subscription_guid, employer_guid, employee_guid) values ($1,$2,$3)', [ datasetArr[0].subscription_guid, datasetArr[0].employer_guid, datasetArr[0].employee_guid ], function(err, result) { done(); if (err) { set_response(500, err, res); logger.error('error running query', err); return console.error('error running query', err); } logger.info('subscription with created'); set_response(201); }); 正如你已经注意到datasetArr是一个数组。 我想一次为多个员工创build批量订阅。 但是我不想循环访问数组。 有没有办法做到这一点与pg的框?

允许空值用于后缀foreignkey?

我如何让一个外键为空? 我有一个through和belongsToMany协会: Shelf belongsToMany(Book, { through: Library, as: "Books"}); Book belongsToMany(Shelf, { through: Library, as: "Shelves"}); Library section: DataTypes.STRING, // … other fields 我想在Library的bookId上logging一个null: Library.create({ section: "blah", bookId: null, shelfId: 3 }); 由于Sequelize会自动在连接表Library创buildbookId和shelfId ,我将如何指定我希望允许Library的bookId键为null ?

书架JS关系 – 获取计数

我试图让用户数属于特定的公司。 这是我的模型; var Company = Bookshelf.Model.extend({ tableName: 'companies', users: function () { return this.hasMany(User.Model, "company_id"); }, users_count : function(){ return new User.Model().query(function(qb){ qb.where("company_id",9); qb.count(); }).fetch(); }, organization: function () { return this.belongsTo(Organization.Model, "organization_id"); } }); 方法“用户”工作得很好,没问题。 方法“users_count”查询运作良好,但不能得到“公司”模式的价值。 在路线上,我使用这样的书架模型; new Company.Model({id:req.params.id}) .fetch({withRelated:['users']}) .then(function(model){ res.send(model.toJSON()) }) .catch(function(error){ res.send(error); }); 我应该如何使用users_count方法,我有点困惑(可能是因为承诺)

在postgres中包含所有约束违规的错误消息

我正在使用节点的pg客户端构build一个节点应用程序,由于它是一个简单的应用程序,我没有使用应用程序validation,仅使用postgres约束来保护数据完整性并显示插入和更新错误。 使用pg客户端,即使发生多个违例,我也只能立即得到一个约束违规。 是否有可能设置postgres发出插入错误所有constrait违规?

将Elasticsearch与PostgreSQL集成,同时使用带有水线ORM的Sails.js

我正在尝试将Elasticsearch与Sails.js集成,而我的数据库不是MongoDB:我使用PostgreSQL,所以这篇文章没有帮助。 我已经在我的Ubuntu盒子上安装了Elasticsearch,现在它已经成功运行了。 我也在我的Sails项目上安装了这个包 ,但是我不能在现有的模型上创build索引。 如何在我的模型上定义索引,以及如何在模型中使用Elasticsearch进行search? 我需要在模型中定义它的钩子是什么?