如何修改PostgreSQL数据库中所有表的所有者?
我试过,ALTER TABLE * OWNER TO new_owner但它不支持星号语法.
我想在一个语句中更新PostgreSQL中的多行.有没有办法做以下的事情?
UPDATE table
SET
column_a = 1 where column_b = '123',
column_a = 2 where column_b = '345'
Run Code Online (Sandbox Code Playgroud) 在我的gemfile中我有:
gem 'mysql2'
Run Code Online (Sandbox Code Playgroud)
我的database.yml如下:
default: &default
adapter: mysql2
database: <%= ENV['db_name'] %>
username: <%= ENV['db_user'] %>
password: <%= ENV['db_pass'] %>
host: <%= ENV['db_host'] %>
pool: 32
socket: <%= ENV['socket'] %>
development:
<<: *default
production:
<<: *default
Run Code Online (Sandbox Code Playgroud)
我已经运行了两个bundle update并且bundle install我的Gemfile.lock显示了mysql2.
但是,当我运行时,我rake db:migrate在我的计算机和登台服务器上都得到了这个:
myproject.com(master)$ rake db:migrate
WARNING: Use strings for Figaro configuration. 10000012508 was converted to "10000012508".
WARNING: Use strings for Figaro configuration. 860526407370038 was converted to "860526407370038".
rake aborted!
Gem::LoadError: Specified 'mysql2' for database adapter, …Run Code Online (Sandbox Code Playgroud) ruby-on-rails mysql2 ruby-on-rails-4 ruby-on-rails-4.1 ruby-on-rails-4.2
使用Postgres和Activerecord在多列中查找具有重复值的记录的最佳方法是什么?
我发现这个解决方案在这里:
User.find(:all, :group => [:first, :email], :having => "count(*) > 1" )
但它似乎不适用于postgres.我收到这个错误:
PG :: GroupingError:错误:列"parts.id"必须出现在GROUP BY子句中或用于聚合函数
我最近经历了数据库迁移过程,如下所述:
https://devcenter.heroku.com/articles/migrating-from-shared-database-to-heroku-postgres
现在我在日志中看到了许多错误,如下所示:
PGError:错误:关系被拒绝
关于我应该怎么做才能修复它的任何想法?
如何睡觉/等待一秒钟?
我能找到的最好的东西是这样的(在iex中):
IO.puts "foo" ; :timer.sleep(1); IO.puts "bar"
Run Code Online (Sandbox Code Playgroud)
但是我的两个看法都没有延迟.
如何通过rails迁移创建新表,并为其添加唯一索引?
在文档中,我发现如何在创建表后为表添加索引,但是如何在同一个迁移文件中同时创建表并添加唯一索引?
由于/ var/log/secure中的以下错误(根据调试日志),我无法登录SSH:
Dec 19 18:01:05 hostname sshd[25119]: debug1: trying public key file /root/.ssh/authorized_keys
Dec 19 18:01:05 hostname sshd[25119]: debug1: Could not open authorized keys '/root/.ssh/authorized_keys': Permission denied
Run Code Online (Sandbox Code Playgroud)
我在root上设置了以下权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod go-wrx ~
Run Code Online (Sandbox Code Playgroud)
ls -lah为这些目录提供以下输出:
drwx------. 6 root root 4.0K Dec 19 17:46 root
drwx------. 2 root root 4.0K Dec 19 17:41 .ssh
-rw-------. 1 root root 416 Dec 19 17:12 authorized_keys
Run Code Online (Sandbox Code Playgroud)
我知道我使用的密钥是正确的,因为我只是设置了另一台服务器没有任何问题.
我正在运行:CentOS版本6.4(最终版)
我已经添加了我的sshd配置,以防有可能导致问题的错误配置:
# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
# This …Run Code Online (Sandbox Code Playgroud) 我在跑:
Chrome版本google-chrome-stable/unknown uptodate 27.0.1453.93-r200836
Debian GNU/Linux 6.0.6(挤压)32x
当我尝试运行时:
require 'watir-webdriver'
require 'headless'
headless = Headless.new
headless.start
b = Watir::Browser.new(:chrome)
Run Code Online (Sandbox Code Playgroud)
我明白了:
EOFError: end of file reached
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/protocol.rb:141:in `read_nonblock'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:2563:in `read_status_line'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:2552:in `read_new'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:1320:in `block in transport_request'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:1317:in `catch'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:1317:in `transport_request'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:1294:in `request'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:1287:in `block in request'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:746:in `start'
from /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/net/http.rb:1285:in `request'
from /usr/local/rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'
from /usr/local/rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'
from /usr/local/rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
from /usr/local/rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:629:in `raw_execute' …Run Code Online (Sandbox Code Playgroud) elixir的pry可以在模块中运行私有方法吗?例如:
defmodule Test do
require IEx
def foo do
IEx.pry
end
defp bar do
end
end
Run Code Online (Sandbox Code Playgroud)
此时呼叫bar不起作用.我对elixir很新,有什么我做错了或者为什么这是不可能的?