我很惊讶地发现,当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) 根据"Post Recipient View"的API文档,属性意味着:
authenticationMethod:发件人创建的值,指示用于验证签名者的约定.此信息包含在完成证书中.
authenticationInstant:发送方生成[sic]值,指示签名者的身份验证日期/时间.
我不确定"用于验证签名者的惯例"是什么意思.我的用户通过电子邮件/密码进行身份验证,这很常见.这些属性的有效值是什么("EmailWithPassword"API不接受)?什么值对应"通过密码验证"?
我无法理解锁与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事务中的事务需要阻塞表呢?
我已经在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) 来自DocuSign"API要求信息":
[Y]我们的API认证审核涉及验证每个独立信封每15分钟不超过1个状态请求,以便遵循以下方法:...
REST API:GET/accounts/{accountId}/envelope
这些要求有多严格?如果我的99%的用户只提出1个状态请求,但是少数(在午夜左右注册的用户)将发出2个彼此非常接近的请求,我的API访问权限是否会被撤销?这有多危险?
我需要删除一个非常大的表(例如,5米行)的大多数(比方说,90%).该表的另外10%经常被读取,但不写入.
从" 按ID删除数百万行的最佳方式 ",我收集到我应该删除90%我删除的任何索引,以加快进程(除了我用来选择要删除的行的索引) .
从" PostgreSQL锁定模式 ",我看到这个操作将获取ROW EXCLUSIVE整个表的锁定.但是,因为我只是读了另外的10%,这应该没有关系.
那么,在一个命令中删除所有内容是否安全(即DELETE FROM table WHERE delete_flag='t')?我担心如果删除一行失败,触发大量回滚,那么它将影响我从表中读取的能力.批量删除会更明智吗?
postgresql indexing locking transactions postgresql-performance
我想回填一列大(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) 如何最好地将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。
postgresql ×4
docusignapi ×3
locking ×2
transactions ×2
activerecord ×1
amazon-s3 ×1
csv ×1
etl ×1
fog ×1
indexing ×1
paperclip ×1
python ×1
python-2.7 ×1
ruby ×1
stringio ×1
swap ×1