Tag: postgresql

带有sails.js和sails-postgresql的数据库模式

有没有办法用sails-postgresql waterline适配器设置数据库模式? 默认情况下,postgres适配器总是select数据库中的默认公共模式,但我想连接到另一个模式。 例如我有数据库开发,数据库开发模式testing和模式testing中的表用户。 现在我想从表格用户中select所有的数据,在sql语法中,我可以简单地写: SELECT * FROM test.users 如何使它在风帆中工作? 当我编写使用postgres适配器的模型时,方法Users.find()将在默认的公共模式下查找表用户。 我想改变它来查看架构testing,而不与我的postgres数据库交互。 可能吗?

具有公共expression式(WITH子句)支持的基于节点的SQL生成器

我正在构build一个需要使用CTE查询Redshift数据库(基于postgres 8.0.2)的Node.js应用程序。 不幸的是,到目前为止,我查看的SQL查询构build器( node-sql , knex.js和sequelize)似乎不支持公用表expression式(CTE)。 我在Ruby中使用Jeremy Evans的Sequel gem获得了巨大的成功,它有一个with两个参数的方法来定义表的别名和数据集引用。 我想在Node中有类似的东西。 我错过了Node.js SQL查询构build器的任何明显的竞争者吗? 从我所能告诉的是,这四个最明显的是: 节点-SQL nodesql(没有postgres支持?) knex.js sequelize

node-postgres与callback或asynchronous/等待交易?

我正在运行节点7.6.0,它支持asynchronous/等待。 节点postgres客户端池支持asynchronous/等待,并有一个很好的例子。 但是,node-postgres( 这里 )中的事务示例使用callback而不是async / await。 尽pipe这个例子,我想我会尝试在asynchronous/等待快速testing交易: let client = null; try { client = await this.pool.connect(); } catch (error) { console.log('A client pool error occurred:', error); return error; } try { await client.query('BEGIN'); await client.query('UPDATE foo SET bar = 1'); await client.query('UPDATE bar SET foo = 2'); await client.query('COMMIT'); } catch (error) { […]

我可以在客户端(express / node.js)使用PostgreSQL(pg)

我想在客户端使用PostgreSQL。 那可能吗? 我可以有这个代码吗? 在我的server.js var pg = require('pg'); 在我的客户端 var conString = "postgres://postgres:pass@localhost/mydb"; var client = new pg.Client(conString); client.connect(); var query = client.query("SELECT * FROM users "); query.on('row', function(row) { alert(row.name); }); 我试过这个代码,但没有发生。 虽然我可以有一个类似这样的代码,在那里我连接PostgreSQL和在客户端脚本上使用查询。

node-postgres是否支持多个结果集

我有一个PostgresQL函数返回多个结果集。 我可以在.net中提取这些结果集没有问题(所以我知道我的function正常工作),但我有麻烦与node-postgres这样做。 结果对象返回与返回的数据集数相匹配的7个项目的数组。 在Node中,7行中的每一行都只包含一个<unnamed portal 1>的string。 connection.query("BEGIN"); connection.query({text: "SELECT getoperationaldatasetmodel($1)", values : [clientid]}, function(err, results) { if (err) { connection.query("COMMIT"); self.pool.release(connection); callback(err); } else { var opsDataset = null; var rows = results.rows; // this returns 7 rows but the rows do not contain data but rather the name of the dataset. } 所以:node-postgres是否支持多个结果集,如果是的话,有关如何提取的build议? 编辑:这是我使用的节点postgres的代码,如果其他人需要在未来使用它。 […]

带有Node.js的数据库inheritance模型

使用Node.js和一个类似于SQL的数据库,在实现数据库inheritance模型时,我有什么select? 我环顾四周,似乎由于Node.js中noSQL数据库的stream行,数据库inheritance被忽略了。 我试图完成一个非常简单的事情:基于一些业务规则扩展一个用户表。 为了简单起见,我想要添加读者和主持人的表和类的属性会有所不同。 这是在使用NHibernate的.NET中相对容易完成的事情。 我可以达到相同的结果,而不用粘在同一张表的所有内容? 如果不是,最好的select是什么? 顺便说一句,我通过Sequelize与PostreSQL使用Node.js。

使用PostgreSQL / NodeJS将JOIN表作为结果数组

我正在创build一个应用程序,用户可以创build问题,其他人可以upvote / downvote他们。 以下是我的sql模式的一部分: CREATE TABLE "questions" ( id SERIAL, content VARCHAR(511) NOT NULL, created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), CONSTRAINT pk_question PRIMARY KEY (id) ); CREATE TABLE "votes" ( id SERIAL, value INT, question_id INT NOT NULL, CONSTRAINT pk_vote PRIMARY KEY (id), CONSTRAINT fk_question_votes FOREIGN KEY (question_id) REFERENCES questions (id) MATCH […]

如何优化Postgresql max_connections和node-postgres连接池?

简而言之,我无法支持利用Postgresql,Node.js和node-postgres的数据API每分钟超过5000个读取请求。 瓶颈似乎在API和数据库之间。 这里是implmentation的细节。 我为Node.js供电的数据API使用了AWS Postgresql RDS数据库实例(m4.4xlarge – 64 GB mem,16 vCPU,350 GB SSD,没有预configuration的IOPS)。 默认情况下,RDS的max_connections = 5000。 节点API在两个群集之间进行负载均衡,每个群集有4个进程(2个Ec2和4个vCPU,在群集模式下使用PM2运行API)。 我使用node-postgres将API绑定到Postgresql RDS,并试图使用它的连接池function。 以下是我的连接池代码示例: var pool = new Pool({ user: settings.database.username, password: settings.database.password, host: settings.database.readServer, database: settings.database.database, max: 25, idleTimeoutMillis: 1000 }); /* Example of pool usage */ pool.query('SELECT my_column FROM my_table', function(err, result){ /* Callback code here */ […]

node.js + postgres数据库事务pipe理

我们有一个现有的SQL数据库,并且正在使用这个postgres驱动程序模块编写一个使用直接SQL访问它的node.js服务器: https://github.com/brianc/node-postgres 到目前为止,我找不到与postgres一起使用的事务pipe理节点模块。 有人知道吗? 最好有一些现实世界的使用? 其次,在更高层次上,我们正在评估node.js是否可以实际上将Javareplace为可能处理卷的服务器的真实解决scheme。 交易pipe理是我们必须解决的问题之一。 所以一些洞察也是有用的。 目前,我只是在节点服务器请求的开始处发出一个sql BEGIN,最后是一个ROLLBACK或COMMIT。 但是,我(或许显然)不熟悉与SQL事务pipe理有关的现实世界问题。 如果有人能简单地解释事务pipe理框架解决的问题,我会觉得它很有用。 编辑:我正在使用postgres驱动程序的内置连接池机制,并在http请求内的所有查询发出在从池中获得的同一连接。 首先发布BEGIN,然后无论具体的http请求是什么,然后是COMMIT或ROLLBACK。 谢谢。

nodejs应用程序的node-postgres和pg-promise

我将用Postgresql构build一个Nodejs应用程序作为后端。 我不打算使用像Sequelize这样的ORM, 因为文档和性能问题很糟糕,或者其他ORM – ORM是反模式 。 我发现node-postgres和pg-promise是这方面的候选人。 那么,任何人都可以澄清一个工具比另一个更好的scheme,或者哪一个工具是描述的方式,前提是node-postgres自2010年以来一直在发展,自2015年起pg-promise。