小编Sim*_*kin的帖子

为什么`rake db:drop`具有0退出状态,并且当它失败时不会引发错误?

我很惊讶地发现,当rake db:drop(并假设Rails的其他内置raketasks)失败时,bash状态代码为0.

$ rake db:drop
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
...
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

也许更令人惊讶的是,当从Rails中调用任务时,它甚至不会引发错误.

2.3.0 :001 > begin
2.3.0 :002 >   Rake::Task["db:drop"].invoke
2.3.0 :003 >   puts "After raketask invoked"
2.3.0 :004 > end
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
...
After raketask invoked …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql activerecord ruby-on-rails ruby-on-rails-4

9
推荐指数
1
解决办法
491
查看次数

以编程方式批准DocuSign文档

在我的用户签署DocuSign信封后不久,我希望能够快速批准或拒绝它.参考这个SO问题这个论坛帖子,我将自己添加为Signer(以及发件人,我想)并为我的角色创建了一个Approve标签.

这样可以正常工作,但由于我想要拒绝/取消给定文档的情况既罕见又难以检查,我宁愿不要手动批准它们.我发现有一种方法可以通过API使信封无效,但我如何通过API 批准呢?或者有更好的方法来完成这一切吗?

docusignapi

6
推荐指数
1
解决办法
422
查看次数

"后收件人视图"中`authenticationMethod`和`authenticationInstant`的含义

根据"Post Recipient View"的API文档,属性意味着:

authenticationMethod:发件人创建的值,指示用于验证签名者的约定.此信息包含在完成证书中.

authenticationInstant:发送方生成[sic]值,指示签名者的身份验证日期/时间.

我不确定"用于验证签名者的惯例"是什么意思.我的用户通过电子邮件/密码进行身份验证,这很常见.这些属性的有效值是什么("EmailWithPassword"API不接受)?什么值对应"通过密码验证"?

docusignapi

6
推荐指数
1
解决办法
403
查看次数

Postgres在事务中锁定

我无法理解锁与Postgres中的事务如何交互.

当我运行这个(长)查询时,我对发生的高度锁定感到惊讶:

BEGIN;
TRUNCATE foo;
\COPY foo FROM 'backup.txt';
COMMIT;
Run Code Online (Sandbox Code Playgroud)

文件对于\COPY没有提到它需要什么级别的锁,但是这篇文章表明,它只能得到一个RowExclusiveLock.但是当我在以下期间运行此查询时\COPY:

SELECT mode, granted FROM pg_locks
WHERE relation='foo'::regclass::oid;
Run Code Online (Sandbox Code Playgroud)

我明白了:

mode    granted
RowExclusiveLock    true
ShareLock   true
AccessExclusiveLock true
Run Code Online (Sandbox Code Playgroud)

AccessExclusiveLock来自哪里?我假设它来自TRUNCATE,这需要一个AccessExclusiveLock.但是TRUNCATE很快就完成了,所以我希望锁定能够快速释放.这给我留下了一些问题.

当事务中的命令获取锁时,是否在命令结束时(在事务结束之前)释放该锁?如果是这样,为什么我会观察到上述行为?如果没有,为什么不呢?实际上,由于事务直到事务才触及表COMMIT,为什么TRUNCATE事务中的事务需要阻塞表呢?

我看不出在这个任何讨论文档交易的PG.

postgresql locking transactions postgresql-9.4

6
推荐指数
1
解决办法
5086
查看次数

使用Paperclip将对象关联到S3上的预先存在的文件

我已经在S3上有一个文件,我想将其关联到预先存在的Asset模型实例.

这是模型:

class Asset < ActiveRecord::Base
  attr_accessible(:attachment_content_type, :attachment_file_name,
                 :attachment_file_size, :attachment_updated_at, :attachment)

  has_attached_file :attachment, {
    storage: :s3,
    s3_credentials: {
      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
    },
    convert_options: { all: '-auto-orient' },
    url: ':s3_alias_url',
    s3_host_alias: ENV['S3_HOST_ALIAS'],
    path: ":class/:attachment/:id_partition/:style/:filename",
    bucket: ENV['S3_BUCKET_NAME'],
    s3_protocol: 'https'
  }
end
Run Code Online (Sandbox Code Playgroud)

假设路径是assets/attachments/000/111/file.png,并且Asset我想要与文件关联的实例是asset.在消息来源,我试过:

options = {
    storage: :s3,
    s3_credentials: {
      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
    },
    convert_options: { all: '-auto-orient' },
    url: ':s3_alias_url',
    s3_host_alias: ENV['S3_HOST_ALIAS'],
    path: "assets/attachments/000/111/file.png",
    bucket: ENV['S3_BUCKET_NAME'],
    s3_protocol: 'https'
  }
# The above …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 paperclip ruby-on-rails-3 fog

5
推荐指数
1
解决办法
1034
查看次数

DocuSign认证的严谨性

来自DocuSign"API要求信息":

[Y]我们的API认证审核涉及验证每个独立信封每15分钟不超过1个状态请求,以便遵循以下方法:...

REST API:GET/accounts/{accountId}/envelope

这些要求有多严格?如果我的99%的用户只提出1个状态请求,但是少数(在午夜左右注册的用户)将发出2个彼此非常接近的请求,我的API访问权限是否会被撤销?这有多危险?

docusignapi

5
推荐指数
1
解决办法
215
查看次数

如何从频繁访问的表中删除许多行

我需要删除一个非常大的表(例如,5米行)的大多数(比方说,90%).该表的另外10%经常被读取,但不写入.

从" 按ID删除数百万行的最佳方式 ",我收集到我应该删除90%我删除的任何索引,以加快进程(除了我用来选择要删除的行的索引) .

从" PostgreSQL锁定模式 ",我看到这个操作将获取ROW EXCLUSIVE整个表的锁定.但是,因为我只是了另外的10%,这应该没有关系.

那么,在一个命令中删除所有内容是否安全(即DELETE FROM table WHERE delete_flag='t')?我担心如果删除一行失败,触发大量回滚,那么它将影响我从表中读取的能力.批量删除会更明智吗?

postgresql indexing locking transactions postgresql-performance

5
推荐指数
1
解决办法
863
查看次数

为什么 Postgres 中的表交换如此冗长?

我想回填一列大(20M 行)、经常阅读但很少写的表格。从关于 SO 的各种文章问题来看,似乎最好的方法是创建一个具有相同结构的表,加载回填数据和实时交换(因为重命名非常快)。听起来不错!

但是当我真正编写脚本来执行此操作时,它的长度令人难以置信。这是一个味道:

BEGIN;
  CREATE TABLE foo_new (LIKE foo);
  -- I don't use INCLUDING ALL, because that produces Indexes/Constraints with different names

  -- This is the only part of the script that is specific to my case.
  -- Everything else is standard for any table swap
  INSERT INTO foo_new (id, first_name, last_name, email, full_name)
    (SELECT id, first_name, last_name, email, first_name || last_name) FROM foo);

  CREATE SEQUENCE foo_new_id_seq
    START 1
    INCREMENT …
Run Code Online (Sandbox Code Playgroud)

postgresql swap etl

5
推荐指数
1
解决办法
3533
查看次数

将列表的Python列表转换为字符串

如何最好地将Python中的列表列表转换为(例如)逗号分隔值,换行分隔行,字符串?理想情况下,我可以执行以下操作:

>import csv

>matrix = [["Frodo","Baggins","Hole-in-the-Ground, Shire"],["Sauron", "I forget", "Mordor"]]
> csv_string = csv.generate_string(matrix)
>print(csv_string)
Frodo,Baggins,"Hole-in-the-Ground, Shire"
Sauron,I forget,Mordor
Run Code Online (Sandbox Code Playgroud)

我知道Python有一个CSV模块,如在做题像这样,但是它的所有功能似乎一个文件对象进行操作。列表足够小,以至于使用文件是多余的。

我熟悉的加入功能,并有大量的SO答案。但这不会处理包含逗号的值,也不会处理多行,除非我将a嵌套join在另一个行中join

python csv stringio python-2.7

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