PostgresqlのCardinalityViolationエラーの解決方法

Rails6で実装されたActiveRecord#upsert_allでバルクアップデートをしようとすると ActiveRecord::StatementInvalid: PG::CardinalityViolation: ERROR: ON CONFLICT DO UPDATE コマンドは行に再度影響を与えることはできません HINT: 同じコマンドでの挿入候補の行が同じ制約値を持つことがないようにしてください とエラーが出たけどCardinalityViolationの意味がわからなかったので調べてみました。 ...

2022-06-07 · ironsand

RubocopがPathnameで+演算子を使ってると誤警告を出してくる対策

Rubocopを使うと変数と文字列を結合するときにfoo + 'bar'形式で記述してると式展開を使った"#{foo}bar"を推奨してくるのですが、fooの場合がPathnameクラスであっても同様の警告を出してきます。 ...

2022-06-02 · ironsand

RubyでのSelenium WebDriverのheadlessの指定方法

Selenium::WebDriver.for(:chrome)の headless のためのオプション設定方法がややこしくてよく忘れるのでメモっておきます。 ...

2022-05-26 · ironsand

ThinkCentre M75q Tiny Gen2を実質56000円で購入した話

異常にコスパがいいことで話題になっているThinkCentre M75q tiny Gen2 (M75q-2) を購入した記録です。買い方にちょっとコツがいるので解説していきます。 ...

2021-06-06 · ironsand

Selenium::WebDriverでデフォルトで引数を渡すようにする

SeleniumでChromeをheadlessで使おうとすると複数のオプションがあって、バージョンによって必要なオプションが変わるなど面倒なことが山盛りなので、せめて一箇所で設定できるようにデフォルトで読み込むオプション設定を決めることにしました。 ...

2021-05-22 · ironsand

Railsの環境によってSeleniumで使うブラウザを変える

スクレイピングをする時に使うブラウザをRailsの開発環境と本番環境で切り替えたかったので方法を記録しておきます。 ...

2021-05-22 · ironsand

FerrumをMacOSのローカルで使う

ChromeのアップデートのためにChrome本体とChromeDriverの相性問題が出るのが嫌になったのでFerrumを使うことにしました。Macのローカルだとバイナリを探してくれずエラーになったので対処方法を記録しておきます。 ...

2021-05-20 · ironsand

Macで複数のバージョンのpostgresqlをインストールして使う

最近のプログラミング言語はrbenvやanyenvなど複数のバージョンを共存して使うためのツールが用意されてる事が多いですが、PostgreSQLなどのデータベース環境にはまだデファクトスタンダードのものがないようです。Dockerを使えばいいのかもしれませんが、MacOSでは非常に遅くできるだけ避けたいのでHomebrewでサードパーティのフォーミュラを使った方法を紹介します。 ...

2021-04-01 · ironsand

トラックパッドやマウスの移動速度を設定の限度よりも上げる

Macでトラックパッドやマウスの移動速度を設定の上限よりも速くしたかったので方法を調べてみました。 ...

2021-03-15 · ironsand

Docker DesktopがFailed to Restartで立ち上がらない時の対処法

Windowsを再起動したらdocker-wsl-cli.isoが存在しないというエラーでDocker Desktopが立ち上がらなくなったのでその対策を残しておきます。 ...

2021-03-02 · ironsand