Tag: postgresql

Mac上的PostgreSQL SELECT不做任何事情

我在主站点的Mac(OS 10.10.3)上安装了PostgreSQL。 我只是下载了.app文件并从应用程序运行它。 我还将psql添加到$ PATH。 我创build了一个名为todo的数据库。 我插入(通过curl和一个node.js文件)数据到该数据库,当我尝试从该表中select所有没有发生任何事情。 在这里,我看到它绝对是input数据,因为它通过这个代码返回它: // SQL Query > Select Data var query = client.query("SELECT * FROM items ORDER BY id ASC"); // Stream results back one row at a time query.on('row', function(row) { results.push(row); }); 这里没有任何反应,当input“select * from items” 我想知道如果也许有权限问题或什么的。 也许我连接到psql的用户不是超级用户? 这是我安装PostgreSQL的用户。

没有时区的时间戳,date/时间字段值超出范围:

我得到错误{ [error: date/time field value out of range: "1439728672"] .. 我使用没有时区的时间戳列和执行像下面的查询使用CURRENT_TIMESTAMP我做到了在另一个数据库/表成功我不知道为什么? 柱 "CreateDate" timestamp without time zone, … nodejs postgres var query = 'INSERT INTO "Article" ("Content","CreateDate") VALUES ($1,CURRENT_TIMESTAMP) RETURNING "ArticleId"'; dbClient.query(query,[content], function(error, result) { });

列是不带时区的时间戳types,但expression式的types是整数

我得到像下面的错误信息,当我创build这个表就像其他人设置列时间戳timestamp without time zone NOT NULL ,但是当我试图插入2015-08-16 18:51:05到这张表,然后我得到错误,但其他表是工作,为什么以及如何解决呢? CREATE TABLE IF NOT EXISTS "UserForgetPasswordPending"( "UserForgetPasswordPendingId" SERIAL NOT NULL, "Email" varchar(50) NOT NULL, "TokenTimestamp" timestamp without time zone NOT NULL, "Token" varchar(100) NOT NULL, PRIMARY KEY ("UserForgetPasswordPendingId") ); ALTER TABLE "UserForgetPasswordPending" OWNER TO db_admin; 错误 [error: column "TokenTimestamp" is of type timestamp without time zone but […]

SailsJS / Waterline不能在Postgres中创build模型

我试图将我的Sails JS应用程序部署到标准的Ubuntu 14.04.3 VM上。 现在,我无法连接我的SailsJS实例与PostgreSQL服务器实例。 SailsJS服务器和PostgreSQL服务器都运行在同一个VM中。 我从我的Sails JS日志得到以下输出: MySailsServer-0 Sending 500 ("Server Error") response: Error (E_UNKNOWN) :: Encountered an unexpected error error: relation "recording" does not exist at Connection.parseE (/home/vmuser/MySailsServer/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:539:11) at Connection.parseMessage (/home/vmuser/MySailsServer/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:366:17) at Socket.<anonymous> (/home/vmuser/MySailsServer/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:105:22) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) 看起来好像我的Recording模型没有在数据库中创build。 我检查了Postgre日志以获取更多信息。 以下是cat /var/log/postgresql/postgresql-9.3-main.log的输出: […]

如何在多个nodejs实例中共享一个对象?

我有一个function,其中用户发布数据包含less数userid和一些数据相关的这些userid,我将它保存到postgresql数据库。 我想保存这个返回的userid在一些对象。 我只想检查用户标识是否存在于这个对象中,然后只调用数据库。 这个检查发生得非常频繁,所以我不能每次都检查数据库只是为了检查是否有任何数据目前的用户ID。 问题是,我有不同的服务器上运行多个nodejs实例 ,所以我怎么能有一个共同的对象。 我知道我可以使用redis / riak在服务器上存储键值,但是不想仅仅为了一个单一的情况增加复杂性/学习(我之前从未使用过redis / riak)。 任何build议?

如何使pg-promise将数据返回为数组?

我们如何让pg-promise从查询中返回一个行数组,而不是行对象数组呢?

我如何防止Knex在PostgreSQL上插入尾随空格?

我使用Node和包pg和Knex在PostgreSQL上插入数据。 这是我的源代码: var knex = require('knex')({ client: 'pg', connection: 'postgres://postgres:52Ag98d5@localhost:5433/CRM' }); var rows = []; for(var i = 0; i < 20000; i++) { rows.push({ name: faker.Name.findName(), email: faker.Internet.email() }); } knex.batchInsert('contact', rows) .then(() => { knex.destroy(); }); 它工作的很好,除了string字段被填充尾部空格。 我的意思是…如果一个字段是character(50) ,我用10个字符填充它,它将在最后插入40个空格。 请参阅pgAdmin上的亮点: 我不知道这是谁的错。 我不知道这是因为Knex还是因为Node pg驱动程序。 任何意识如何防止这种行为?

Node / Express&Postgresql – 当没有行匹配时

你好我是Postgresql的新手,我想知道如何处理0结果作为错误被抛出。 基本上我想获得一个用户,如果它不存在,返回null,如果没有,并有一个error handling程序。 以下是我正在使用的当前代码。 任何提示,以更好的方式来做到这一点,表示赞赏! var options = { // Initialization Options promiseLib: promise }; var pgp = require('pg-promise')(options); var connectionString = 'postgres://localhost:5432/myDbName'; var db = pgp(connectionString); function getUser(id) { let user = new Promise(function(resolve, reject) { try { db.one('select * from users where loginName = $1', id).then(function(data) { console.log(data); resolve(data); }).catch (function (e) { […]

用于运行本机SQL查询的环回“params”

有人知道这里的Loopback文档有什么“params”: https://docs.strongloop.com/display/public/LB/Executing+native+SQL 它说: 执行原生SQL 要直接对您的数据连接模型执行SQL,请使用以下命令: dataSource.connector.execute(sql, params, cb); 要么 dataSource.connector.query(sql, params, cb); // For 1.x connectors 其中:sql – SQLstring。 params – SQL语句的参数。 cb – callback函数

Node-RED实时监听PostgreSQL

我需要使用Node-RED实时监听PostgreSQL的变化。 我怎样才能做到这一点? 我在表中的新logging创build触发器,并通知这个“更改”通道。 CREATE FUNCTION notify_trigger() RETURNS trigger AS $$ DECLARE BEGIN PERFORM pg_notify('changes', TG_TABLE_NAME || ',id,' || NEW.id ); RETURN new; END; $$ LANGUAGE plpgsql; CREATE TRIGGER watched_table_trigger AFTER INSERT ON users FOR EACH ROW EXECUTE PROCEDURE notify_trigger(); 但是我不知道如何从Node-RED收听。 请问你能帮帮我吗? 也许我可以做不同的事情?