我按照手册上:https://docs.timescale.com/v1.0/using-timescaledb/backup
当我把它转储到一个二进制文件中时,一切都按预期进行(可以轻松恢复)。
但是,当我把它转储到纯文本SQL中时,将创建到超表的插入。
假设我有一个'Auto'表,其中包含id、brand、speed列,并且只有一行:1,Opel,170
转储到SQL会导致这样的结果:
INSERT INTO _timescaledb_catalog.hypertable VALUES ...
INSERT INTO _timescaledb_internal._hyper_382_8930_chunk VALUES (1, 'Opel',170);
字符串
我需要的是这个(让TS在后台做工作):
INSERT INTO Auto VALUES (1,'Opel',170);
型
这可能吗?(我知道我可以从pg_dump中排除表,但这不会创建所需的插入)
2条答案
按热度按时间yrefmtwq1#
Beatrice。不幸的是,
pg_dump
将转储反映Timescale底层实现的命令。例如,_hyper_382_8930_chunk
是您拥有的auto
超表的底层块。我可以问一下为什么你不希望
pg_dump
这样做吗?Postgres在转储上创建的SQL文件是供pg_restore
使用的。所以只要你转储和恢复并看到正确的状态,转储/恢复就没有问题。也许你在问一个不同的问题。
hkmswyz62#
你可以使用Node.js中的child_process模块来运行shell命令。下面是一个运行pg_dump命令的简单脚本:
字符串
此脚本使用提供的参数构造pg_dump命令,然后使用exec运行它。命令的输出(或任何错误)将记录到控制台。