postgreSQLに複数ファイルを読み込ます


sqlファイルが2つの例

1つ目のファイル

file_A.sql

insert into table_name (
    id,
    column1,
    column2,
    column3)
values
    (1,'column1_data1','column2_data1','column3_data1'),
    (2,'column1_data2','column2_data2','column3_data2'),
    (3,'column1_data3','column2_data3','column3_data3');



2つ目のファイル
file_B.sql

insert into table_name (
    id,
    column1,
    column2,
    column3)
values
    (4,'column1_data4','column2_data4','column3_data4'),
    (5,'column1_data5','column2_data5','column3_data5'),
    (6,'column1_data6','column2_data6','column3_data6');



まず、postgreSQLにバックグラウンドで接続
$ pg_ctl -D /usr/local/var/postgres -l logfile start


データベースを呼び出す
$ psql database_name


1つずつ読み込ます場合


database_name=# \i file_A.sql

返ってくる表示
INSERT 0 3


database_name=# \i file_B.sql

返ってくる表示
INSERT 0 3


2つを一気に読み込ます場合


別途に下記のようなリストファイルをつくる。

file_all.sql

\i file_A.sql
\i file_B.sql


リストファイルを読み込ますとfile_A、file_Bの内容が一気に実行される。

database_name=# \i file_all.sql

返ってくる表示
INSERT 0 3
INSERT 0 3


今回の環境

Ruby 2.4.1p111
postgreSQL 10.1

iMacのSpotlightを再設定する

たまにSpotlightからアプリを立ち上げる(検索する)ことができなくなる
そうなったときはSpotlightを再設定するとよい

環境は macOS Sierra 10.12.6


システム環境設定で「Spotlight」を選択

「プライバシー」タグを選択

+(プラス)マークをクリック

Macintosh HD」を選んで選択ボタンをクリック
そうするとMacintosh HDがSpotlightの検索から除外される

「Spotlightの検索から除外する場所:」一覧からMacintosh HDを選択

-(マイナス)マークがアクティブになるのでそれをクリックしてMacintosh HDを除外から外す


これでSpotlightからアプリケーションを検索して立ち上げることができるようになる

windows10でrubyのgem、twitterを使ったらSSL_connectエラーがでた

普段、macでやっていることをwindowsでやってみたらうまくいかなかった。

require 'twitter'

client = Twitter::REST::Client.new do |config|
    config.consumer_key        = 'key'
    config.consumer_secret     = 'secret'
    config.access_token        = 'token'
    config.access_token_secret = 'token_secret'
end

tweets = [
    "tweet1",
    "tweet2",
  ]

tweets.each do |tweet|
    client.update(tweet)
    sleep(60)
end

エラー表示

C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/twitter-6.1.0/lib/twitter/rest/request.rb:37:in `rescue in perform': SSL_connect returned =1 errno=0 state=error: certificate verify failed (Twitter::Error)

調べてみたら対応策が見つかったので試してみた。

まず、証明書の場所を確認するため、powershellで下記のコマンドを入力する。

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"

するとディレクトリとファイル名が表示される。

C:/Users/...省略.../ssl/cert.pem

現状これらのディレクトリやファイルはないので、各ディレクトリをつくって最後のsslディレクトリにpemファイルを収める。

powershellを使ってディレクトリをつくるため、powershellを管理者で立ち上げる。
Windowsマークを右クリックしてWindowsPowerShell(管理者)を選んでpowershellを起動させる。

下記のコマンドでディレクトリをつくる。
New-Item "C:/Users/...省略.../ssl" -Type Directory
(このときコマンド内のPATHはシングルもしくはダブルクォーテーションで囲むこと。)

下記のURLからpemファイルをダウンロード
https://curl.haxx.se/ca/cacert.pem

ファイル名をcacert.pemからcert.pemに変更する。

cert.pemファイルをsslディレクトリに移動する。

これでtweetできるようになった。

なぜSSLエラーになるようになったのか?
少し前にRubyの入れ替えをしたので、そのときへんなことをしてしまったのかもしれない。

環境

windows10
Ruby 2.3.0
twitter(gem) 6.1.0

参考にしたページ

RubyTwitterを SSLではじかれる件(Windows)
http://qiita.com/Accent/items/bc454e2fb653abedc77d

RailsTwitterREST APIを叩いた際のSSL証明書の認証エラー回避方法
https://teratail.com/questions/70035

Herokuに2台目のパソコンからデプロイする方法

普段はiMacで運営しているsinatraアプリをWindows10のラップトップパソコンからもデプロイする方法。
調べるときは「Heroku」「git」「 紐付ける」などで検索すると良い。
Rubyやgitをインストールしておく必要あり。

PowerShellからHerokuにログインする

環境によってはコマンドプロンプトやGit BASHを利用する。
PS C:\Users\name> heroku login

メルアドとパスワードを求められるので入力する

Enter your Heroku credentials:
Email: メルアド
Password: ************

Herokuからcloneする

PS C:\Users\name>heroku git:clone --app アプリ名

これでHerokuとgitが自動で紐づく
このとき、アプリ名のディレクトリがつくられる
一旦Heroku logout

アプリを更新する

ラップトップで更新したファイルをデプロイする

cdコマンドで新しくできたディレクトリに移動する

Heroku loginする

PS C:\Users\name\ディレクトリ名> git add .
PS C:\Users\name\ディレクトリ名> git commit -m "コメント"

git commit でエラーになる場合
エラーメッセージ

*** Please tell me who you are.

Run

git config –global user.email “you@example.com
git config –global user.name “Your Name”

to set your account’s default identity.
Omit –global to set the identity only in this repository.

fatal: unable to auto-detect email address (got ‘*@DESKTOP-**.(none)’)

指示通りにメルアドと名前を入力する。その際、ダブルクォーテーションは不要
PS C:\Users\name\ディレクトリ名> git config --global user.email メルアド
PS C:\Users\name\ディレクトリ名> git config --global user.name 名前

commitしてpush
PS C:\Users\name\ディレクトリ名> git commit -m "コメント"
PS C:\Users\name\ディレクトリ名> git push heroku master

終了後にHerokuからログアウト。

Ruby Hashに要素を追加する

新しくHashをつくる
hash = Hash.new("")hash = {}

要素を格納する
hash = { hoge: "item1" , hoo: "item2" }

要素を追加する
hash = { bar: "item3" } #これだと変数hashが上書きされてしまう
p hash #=> { :bar => “item3” }

なので要素を追加するときは
hash[:hoge] = "item1"
hash[:hoo] = "item2"
とする。
こうすれば
p hash #=> { :bar => “item3”, :hoge => “item1”, :hoo => “item2” }
となる。

Ruby 2.4.0

ターミナルで文字絵が重なって表示される

るびまを読みながら配列の利用方法を勉強していたら、ターミナルで"□"が重なって表示されてしまった。
Rubyist Magazine - Ruby ではじめるプログラミング 【第 2 回】

□が半角文字と認識されてしまうらしい。
ターミナルの設定を変更したら解決したのでそのときのメモ。

ターミナル > 環境設定 > プロファイル > 詳細
詳細の言語環境項目にある「Unicode 東アジアA(曖昧)の文字幅をW(広)にする」をチェックする。
これで全角表示されるようになった。

Mac OS 10.12.3
ターミナル version 2.7.1

Heroku Ruby version 確認 メモ

Heroku Topページ

Documentation

Reference

Dev Center

Writing a Dev Center Article

Languages

Heroku Ruby Support

Ruby version

現在の最新
Ruby 2.4.0 patchlevel 0
Ruby gems 2.6.8