在cmd上还原pgsl备份的psql错误 [英] psql error for restoring pgsl backup on cmd
本文介绍了在cmd上还原pgsl备份的psql错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我很难理解此错误的含义。我使用的命令是:
I'm having a hard time understanding what this error means. The command I used was:
psql -U postgres -d app -1 -f postgres.sql
这是错误:
psql:postgres.sql:1879: ERROR: current transaction is aborted, commands ignored
until end of transaction block
ROLLBACK
psql:postgres.sql:0: WARNING: there is no transaction in progress
不太确定如何进行交易。这是我尝试导入到postgresl的sql文件: http://pastebin.com/2xMGhstd
Not really sure how to make a transaction in progress. This is the sql file that I was trying to import to postgresl: http://pastebin.com/2xMGhstd
推荐答案
如@joop所述:您的.dmp文件已损坏,因为中不存在user_id = 1用户
表,但在抽奖活动
表中被引用。 示例:运行下一个代码段,然后取消注释其中包含用户#1的行,然后再次运行。
As @joop commented: your .dmp file is crippled because user_id=1 does not exist in the users
table, but is referred in the raffle
table. Example: run the next snippet, then uncomment the line with user#1 on it and run it again.
-- Drop the schema *after* usage
-- DROP SCHEMA tmp CASCADE;
CREATE SCHEMA tmp ;
SET search_path=tmp;
CREATE TABLE users (
id INTEGER NOT NULL,
email VARCHAR(120),
PRIMARY KEY (id),
UNIQUE (email)
);
-- UNCOMMENT the next line to also add user#1
-- INSERT INTO users VALUES(1,'Jim.Fake@nolive.co.uk');
INSERT INTO users VALUES(2,'osman.narnia@live.co.uk');
INSERT INTO users VALUES(3,'KimFake1@outlook.com');
INSERT INTO users VALUES(4,'jaakume@gmail.com');
INSERT INTO users VALUES(5,'omarblack@protonmail.com');
INSERT INTO users VALUES(6,'osman.everton@hotmail.com');
INSERT INTO users VALUES(7,'radoslaw@ganczarek.in');
INSERT INTO users VALUES(8,'kane1001@live.co.uk');
INSERT INTO users VALUES(9,'osman.soloking009@outlook.com');
INSERT INTO users VALUES(10,'Shum1945@fleckens.hu');
CREATE TABLE raffle (
id INTEGER NOT NULL,
user_id INTEGER,
colour VARCHAR(120),
up1 VARCHAR(4),
up2 VARCHAR(4),
PRIMARY KEY (id),
CONSTRAINT _color_up1_up2_uc UNIQUE (colour, up1, up2),
FOREIGN KEY(user_id) REFERENCES users (id)
);
INSERT INTO raffle VALUES(1,1,'Blue','7c4c','5c7e');
INSERT INTO raffle VALUES(2,1,'Pink','635d','853f');
INSERT INTO raffle VALUES(3,1,'Plum','5e80','7611');
INSERT INTO raffle VALUES(4,1,'Aqua','937c','1b75');
INSERT INTO raffle VALUES(5,2,'Navy','1d9a','8914');
INSERT INTO raffle VALUES(6,1,'Grey','d869','fc97');
INSERT INTO raffle VALUES(7,4,'Rose','5fee','b31f');
INSERT INTO raffle VALUES(8,1,'Ruby','d5b4','e749');
INSERT INTO raffle VALUES(9,2,'Teal','cf0b','3bf5');
INSERT INTO raffle VALUES(10,1,'Gold','98a7','3079');
INSERT INTO raffle VALUES(11,1,'Jade','5c69','66f8');
INSERT INTO raffle VALUES(12,1,'Lime','156f','6b34');
INSERT INTO raffle VALUES(13,1,'Blue','7da3','d95b');
INSERT INTO raffle VALUES(14,1,'Pink','a63e','b9b6');
INSERT INTO raffle VALUES(15,1,'Plum','d989','71a5');
INSERT INTO raffle VALUES(16,1,'Aqua','7372','0682');
/****
INSERT INTO raffle VALUES(17,9,'Navy','01b3','e444');
INSERT INTO raffle VALUES(18,1,'Grey','d679','0123');
INSERT INTO raffle VALUES(19,1,'Rose','5963','692d');
...
***/
COMMIT;
这篇关于在cmd上还原pgsl备份的psql错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文