小编bre*_*ttu的帖子

如何在更新中的 postgres 中将 bigint 转换为带时区的时间戳

有没有办法将 a 投射BIGINT到PostgresTIMESTAMPTIMESTAMP WITH TIME ZONE在 Postgres 中?我需要将数据从BIGINT列复制到TIMESTAMP列。

这是我尝试过的:

update table
set date__timestamp = date__bigint::timestamp 
where foo = 1;
Run Code Online (Sandbox Code Playgroud)

错误:无法将 bigint 类型强制转换为没有时区的时间戳

我将时间戳列更改为带时区列并尝试了以下操作:

update table
set date__timestamp = date__bigint::timestamp with time zone at time zone 'PST' 
where foo = 1;
Run Code Online (Sandbox Code Playgroud)

错误:无法将 bigint 类型转换为带时区的时间戳

update table
set date__timstamp = TO_CHAR(TO_TIMESTAMP(date__bi / 1000), 'DD/MM/YYYY HH24:MI:SS')
where foo = 1;
Run Code Online (Sandbox Code Playgroud)

错误:“date__timestamp”列的类型是没有时区的时间戳,但表达式的类型是文本 提示:您需要重写或转换表达式。

数据看起来像这样。

date_bigint: 20181102
date_timestamp: 2018-11-02 17:00:00.000000
Run Code Online (Sandbox Code Playgroud)

我需要将默认值传递给铸造吗?

sql postgresql datetime

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

创建一个不会重复Titan的addEdge()Gremlin查询

有没有办法在Titan图上的两个顶点之间创建一个唯一的边,并确认无法再次创建它,除非删除并重新创建?

基本上我需要创建:

vertex1--follows-->vertex2
Run Code Online (Sandbox Code Playgroud)

但我继续为同一个关系创建多个边:

vertex1--follows-->vertex2
vertex1--follows-->vertex2
vertex1--follows-->vertex2
vertex1--follows-->vertex2
Run Code Online (Sandbox Code Playgroud)

我的基本addEdge查询是这样的:

def follow(target)
  grem = "g.addEdge(
    g.V('id', '#{id}').next(),
    g.V('id', '#{target.id}').next(),
    'follows',
    [since:#{Time.now.year}]
  )"

  $graph.execute(grem).results
end
Run Code Online (Sandbox Code Playgroud)

我想要找到的是这样的

def follow(target)
  grem = "g.addEdge(
    g.V('id', '#{id}').next(),
    g.V('id', '#{target.id}').next(),
    'follows',
    [since:#{Time.now.year}]
  ).unique(Direction.OUT)"

  $graph.execute(grem).results
end
Run Code Online (Sandbox Code Playgroud)

在这个文档中有一个名为unique的方法,但我似乎无法在边缘上工作,只能在顶点属性上工作.

https://github.com/thinkaurelius/titan/wiki/Type-Definition-Overview

我可以在创建addEdge之前运行查询以检查现有边缘,但这看起来很麻烦并且可能导致竞争条件问题.

是否有可能存在一个方法,我可以附加到addEdge,如果边缘已存在,将阻止创建重复边缘?

或者,有没有办法在边缘创建一个独特的属性标签?

这是问题的一个gremlin会话:

gremlin>  g.makeType().name('follows').unique(IN).makeEdgeLabel();
==>v[36028797018964558]
gremlin> u = g.addVertex([name:'brett'])
==>v[120004]
gremlin> u2 = g.addVertex([name:'brettU'])
==>v[120008]
gremlin> e = g.addEdge(u, u2, 'follows')
==>e[2w5N-vdy-2F0LaTPQK2][120004-follows->120008]
gremlin> e = g.addEdge(u, u2, 'follows')
An edge with the given type already exists on the …
Run Code Online (Sandbox Code Playgroud)

ruby gremlin titan

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

如何在Heroku上安装ffi

今天开始我们的Heroku部署.

   Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

   /tmp/build_6e4275c6-8442-4a39-9175-f20505baf383/vendor/ruby-2.0.0/bin/ruby extconf.rb
   checking for ffi.h... no
   checking for ffi.h in /usr/local/include,/usr/include/ffi... no
   checking for rb_thread_blocking_region()... yes
   checking for rb_thread_call_with_gvl()... yes
   checking for rb_thread_call_without_gvl()... yes
   checking for ffi_prep_cif_var()... no
   creating extconf.h
   creating Makefile

   make "DESTDIR="
   Configuring libffi
   make -C "/tmp/build_6e4275c6-8442-4a39-9175-f20505baf383/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-linux"
   make[1]: Entering directory `/tmp/build_6e4275c6-8442-4a39-9175-f20505baf383/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-linux'
Run Code Online (Sandbox Code Playgroud)

最近添加的宝石包括ffi:

  gem 'sass', github: 'nex3/sass'
  gem 'sass-rails'
  gem "compass", "~> 1.0.0.alpha.18"
  gem "compass-rails", "~> 1.1.2"
  gem 'susy', github: 'ericam/susy', branch: 'susy-next'
Run Code Online (Sandbox Code Playgroud)

有没有人将ffi运到Heroku以避免这种情况?

ruby-on-rails heroku ffi

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

标签 统计

datetime ×1

ffi ×1

gremlin ×1

heroku ×1

postgresql ×1

ruby ×1

ruby-on-rails ×1

sql ×1

titan ×1