是否可以在数据库事务中刷新物化视图?
我正在 Laravel 中为复杂查询编写测试用例,它使用事务在测试运行后回滚。
当我添加数据并刷新视图时 - 当我执行 select 语句时不会出现任何记录
我下载了1000个基因组数据(染色体1 -22),它是VCF格式的。如何将所有染色体合并到一个文件中?我应该首先将所有染色体转换为 plink 二进制文件,然后再执行吗--bmerge mmerge-list?或者还有其他方法可以将它们结合起来吗?请问有什么建议吗?
我有一个 Postgres 项目,其中我的模型之一是Client,只需通过其主键进行索引。我在创建客户端时遇到了问题,因为有人创建了一个客户端,同时显式设置了我读过的主键,这不会影响 Postgres 的客户端序列表,该序列表负责在任何时候自动递增主键 1创建了一个 Client 对象。
我运行了一些 SQL 查询来研究它,发现当前序列值实际上比数据库中客户端的最高 ID 263 低 1,即 262,因此表明 ID 为 263 的客户端已经存在。我尝试在前端应用程序中创建一个客户端,再次收到错误,并决定重新运行查询。我看到数据库中没有像预期的那样创建新客户端,但我也注意到序列值确实达到了 263,因此当我尝试再次创建客户端时,它起作用了!
即使相关模型的创建失败,PostgreSQL 序列表也会递增,这是正常行为吗?如果是这样,这似乎可能会导致一些严重的问题。
我试图连接两个 DataFrame,生成的 DataFrame 按原始两个 DataFrame 的顺序保留索引。例如:
df = pd.DataFrame({'Houses':[10,20,30,40,50], 'Cities':[3,4,7,6,1]}, index = [1,2,4,6,8])
df2 = pd.DataFrame({'Houses':[15,25,35,45,55], 'Cities':[1,8,11,14,4]}, index = [0,3,5,7,9])
Run Code Online (Sandbox Code Playgroud)
使用pd.concat([df, df2])只是将 df2 附加到 df1 的末尾。我试图将它们连接起来以产生正确的索引顺序(0 到 9)。
在测试(而非生产)数据库上运行下面的 ActiveRecord 迁移时,db/structure.sql会出现较大的变化。这是可重现的。变化是:
它们是否与生产数据库服务器上的 postgresql 版本和在测试数据库上执行迁移的计算机上的 postgresql 版本不匹配有关?
这些不相关的更改使git diff输出的用处大大降低。GitHub 上的结果也是如此diff。
在下面这个最小的示例中,仅重新排列了一些表。但在现实生活中(较大的)迁移中,它改变了数十个表、视图和 matview 的顺序 - 这是一个巨大的变化。
class FixFooBarBaz < ActiveRecord::Migration[5.2]
def up
sql = <<~SQL
DROP VIEW master_foo;
DROP VIEW IF EXISTS bar1;
CREATE OR REPLACE VIEW bar1 AS
SELECT * FROM baz1
UNION ALL
SELECT * FROM baz2;
CREATE OR REPLACE VIEW master_foo AS
SELECT …Run Code Online (Sandbox Code Playgroud) 我已经在我的用户表中添加了“激活”作为布尔值。我忘记将其添加为 false 作为默认值,所以我生成了此迁移:
rails g migration add_default_to_users_activated
Run Code Online (Sandbox Code Playgroud)
然后我在这里添加了第 3 行:
class AddDefaultToUsersActivated < ActiveRecord::Migration
def change
change_column_default :users, :activated, true
end
end
Run Code Online (Sandbox Code Playgroud)
然后我运行迁移没有任何问题。我意识到我应该添加“false”而不是“true”,所以我想反转迁移并将 add_default_to_users_activated.rb 文件更改为“false”但是当我运行时
rake db:rollback
Run Code Online (Sandbox Code Playgroud)
rake 由于 ActiveRecord::IrreversibleMigration 而中止。
但是我设置的机制是什么,可以防止迁移被恢复以及如何修复它?
编辑:我正在运行 Rails 4.2
reverse ruby-on-rails rollback rails-migrations rails-activerecord
我正在编写一个脚本,它结合了snakemake 和python 代码来自动化成对出现的大量文件。更准确地说,我正在将读取与 BWA MEM 与成对的末端读取 ( http://bio-bwa.sourceforge.net/bwa.shtml )对齐。在脚本的第一部分,我遍历文件中的名称列表(它们是fastq bunzipped文件),然后在列表中相应地对它们进行排序。以下是一些文件的快速浏览:
[ 'NG-8653_ 1A _lib95899_4332_7_ 1 ', 'NG-8653_ 1A _lib95899_4332_7_ 2 ', 'NG-8653_ 1B _lib95900_4332_7_ 1 ', 'NG-8653_ 1B _lib95900_4332_7_ 2 ', 'NG-8653_ 1N _lib95898_4332_7_ 1 ',“NG-8653_ 1N _lib95898_4332_7_ 2 “]
如您所见,读取按两两排序(1A_... 1 和 1A ..._2 等...)。现在使用子进程,我想通过用 bunzip2 解压缩它们然后将它们通过 stdin 传递到 bwa mem 来对齐它们。bwa mem 命令将 fastq 格式文件转换为 .sam 文件,然后我必须使用 samtools 将它们转换为 .bam 格式。这是到目前为止的脚本:
import re, os, subprocess, bz2
WDIR = "/home/alaa/Documents/snakemake"
workdir: WDIR
SAMPLESDIR = "/home/alaa/Documents/snakemake/fastq/"
REF = …Run Code Online (Sandbox Code Playgroud) 我有一个有 20 列的表。我如何知道某一列是否包含null值?如果有nulls ,如何计算它们的数量?
我在 Ruby 中写了这样的东西:
if a.max == a[0]
brand = b[0]
elsif a.max == a[1]
brand = b[1]
elsif a.max == a[2]
brand = b[2]
elsif a.max == a[3]
brand = b[3]
end
Run Code Online (Sandbox Code Playgroud)
a并且b两者都是唯一的数组。
有什么方法可以检查所有if和elsif的情况相同吗?
只有一个条件a[0], a[1],a[2]和a[3]?
如何设置数字显示格式psql?
我有许多 character varying和double precision列中select查询。我可以在每个数字列上使用to_char()或round(),但是对于许多列,这会使代码过于重复。
有捷径吗?例如,是否有任何psql会话设置,例如\pset numeric '9.9EEEEE'(我只是编造的,不要尝试使用它)。我无法在手册中快速找到此类设置:PostgreSQL: Documentation: psql。
例子:
-- Got this:
=# select bar from (values (123456789), (0.123456789), (0.000000123456789)) table_foo (bar);
bar
-------------------
123456789
0.123456789
0.000000123456789
-- I have to use this workaround:
=# select to_char(bar, '9.9EEEEE') as bar from (values (123456789), (0.123456789), (0.000000123456789)) table_foo (bar);
bar
----------
1.2e+08
1.2e-01
1.2e-07
-- I want this:
-- set some session …Run Code Online (Sandbox Code Playgroud) postgresql ×5
python ×2
rollback ×2
ruby ×2
sql ×2
activerecord ×1
arrays ×1
format ×1
genetics ×1
if-statement ×1
indexing ×1
loops ×1
max ×1
null ×1
pandas ×1
psql ×1
reverse ×1
rounding ×1
snakemake ×1
sorting ×1
subprocess ×1
transactions ×1