小编Lab*_*cle的帖子

Postgresql - 更改varchar列的大小

ALTER TABLE对一个非常大的表(大约3000万行)上的命令有疑问.其中一个列是a varchar(255),我想将其调整为a varchar(40).基本上,我想通过运行以下命令来更改我的列:

ALTER TABLE mytable ALTER COLUMN mycolumn TYPE varchar(40);
Run Code Online (Sandbox Code Playgroud)

如果进程很长,我没有问题,但似乎我的表在ALTER TABLE命令期间不再可读.有更聪明的方法吗?也许添加一个新列,从旧列复制值,删除旧列,最后重命名新列?

任何线索将不胜感激!提前致谢,

注意:我使用PostgreSQL 9.0.

postgresql varchar alter-table

136
推荐指数
8
解决办法
21万
查看次数

如何在不推送新提交的情况下重新启动 Github 检查?

我目前正在使用 Github 与基本的 Jenkins 集成(使用 Github 插件):每次我推送一些东西时,我的 Jenkins 测试都会被触发,并且状态会报告给 Github。

由于一些肮脏的原因(我知道根本原因在这里),我的测试可能会随机失败,然后向 Github 报告失败状态(这阻止了合并 PR 的可能性:这是预期的行为)。

您知道是否可以在不推送新提交的情况下重新启动测试吗?因为我知道如果我重新启动测试,它们就会通过。

提前致谢

triggers github pull-request jenkins

40
推荐指数
4
解决办法
2万
查看次数

如何在git add之前自动调用脚本?

这是我的用例:我在我的Git仓库中提交了PNG和其他东西.我想对我想要提交的每个PNG应用一个特定的进程,这是我最终想要提交的进程的结果(可能修改的PNG).

一开始我想到了一个钩子(比如a pre-commit),但它有点奇怪,因为这个过程会改变文件,所以我需要重新添加它!根据我所读到的,没有pre-add钩子(或类似的东西).

可能是一个解决方案是创建一个git别名?但我不想改变 - 太多 - 人们的工作方式,我正在寻找一种平稳透明的方式.

如果你有线索......即使线索是改变我的过程想法.

git hook gitattributes

15
推荐指数
2
解决办法
8159
查看次数

PostgreSQL - 如何恢复非常大的数据库

当我尝试在我的devel数据库节点上恢复一个大型数据库(几乎是32Go自定义格式)时,我遇到了一个小问题(这个节点的RAM,CPU比我的生产服务器少).

我的数据库转储使用类似于以下的命令生成:

pg_dump -F custom -b myDB -Z 9 > /backup/myDB-`date +%y%m%d`.pg91
Run Code Online (Sandbox Code Playgroud)

当我恢复它时,我使用以下命令:

pg_restore -F custom -j 5 -d myDB /backup/myDB-20130331.pg91
Run Code Online (Sandbox Code Playgroud)

但是在这里,每次恢复命令失败时都会出现如下错误:

pg_restore: [archiver (db)] error returned by PQputCopyData: server closed the connection unexpectedly
This probably means the server terminated abnormally
    before or while processing the request.
pg_restore: [archiver] worker process failed: exit code 1
pg_restore: [archiver (db)] error returned by PQputCopyData: server closed the connection unexpectedly
This probably means the server terminated abnormally
    before or while processing the request. …
Run Code Online (Sandbox Code Playgroud)

postgresql dump restore pg-restore postgresql-9.1

8
推荐指数
1
解决办法
9596
查看次数